2 bcdavid bcDavid_ 于 2016.03.09 21:39 提问

id类型进行动态绑定时候出现的编译错误

代码如下:

main.m
图片说明
编译器显示:
Multiple methods named “add” found with mismatched result, parameter type or attributes
FloatNumber.h
图片说明
FloatNumber.m
图片说明
IntNumber.h
图片说明
IntNumber.m
图片说明

5个回答

bcDavid_
bcDavid_   2016.03.09 21:42

关闭ARC的话,编译器只会警告,不会报错
图片说明

bcDavid_
bcDavid_   2016.03.09 21:46

如果把 addForL的返回值改为NSNumber *类型 编译正确 结果也正确
![图片说明
图片说明

zjn640322
zjn640322   2016.03.12 19:33

有多个相同的方法名,如楼上所说修改了NSNumber,实质是改变了方法名,方法名不再冲突,故不会错误

bcDavid_
bcDavid_ 可是之前两个方法的返回值并不相同啊
2 年多之前 回复
jprothwell
jprothwell   2016.11.09 11:13

最终调用的时候其实还是需要转换对应的类.不然还会提示.

jprothwell
jprothwell   2016.11.09 11:15

所以建议不用这方式

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
iOS 动态类型和动态绑定
-
OC中的动态绑定
基于动态类型,在某个实例对象被确定后,其类型便被确定了。该对象对应的属性和响应的消息也被完全确定,这就是动态绑定。在继续之前,需要明确Objective-C中消息的概念。由于OC的动态特性,在OC中其实很少提及“函数”的概念,传统的函数一般在编译时就已经把参数信息和函数实现打包到编译后的源码中了,而在OC中最常使用的是消息机制。调用一个实例的方法,所做的是向该实例的指针发送消息,实例在收到消息后,
动态绑定和id类型
id可以用来存储属于任何类的对象//id的用途万能指针(内部已经包含*),能指向任何OC对象,只能使用于OC对象   id == NSObject *但最好不要使用。id  dataValue;没有*星号,对于id类型不能使用点运算符。使用静态类型和id类型:1.使用静态类型可以看定义在类中的变量调用的方法是继承的还是自己定义类中的。2.提高程序可读性。动态类型的参数和返回类型先判定对象所属的类,...
Objective-C的动态绑定和id类型
id类型可以用来存储属于任何
java动态绑定在属性和方法上的不同
运行时绑定也叫动态绑定,它是一种调用对象方法的机制。Java调用对象方法时,一般采用运行时绑定机制。  1.Java的方法调用过程  编译器查看对象的声明类型和方法名(对象变量的声明类型)。通过声明类型找到方法列表。  编译器查看调用方法时提供的参数类型。  如果方法是private、static、final或者构造器,编译器就可以确定调用那个方法。这是静态绑定。  如果不是上述情况,就
总结一下目前为止碰到的Python编译错误
python初学者编译错误
常见编译错误提示附解决方法
(1)error C2001: newline in constant 编号:C2001 直译:在常量中出现了换行。 错误分析:  1.①字符串常量、字符常量中是否有换行。 2.②在这句语句中,某个字符串常量的尾部是否漏掉了双引号。 3.③在这语句中,某个字符创常量中是否出现了双引号字符“"”,但是没有使用转义符“\"”。 4.④在这句语句中,某个字符常量的尾部是否漏掉了单引号。
CAD类型辨别
CAD类型辨别,在制作CAD时候出现一般性问题进行解决,同时进行保存出来。
Keil uV4编译错误信息表
错误信息的翻译
Java学习中常见的异常和编译错误
Exception in thread "main" java.lang.Array Index Out Of Bounds Exception: 5         at Bub_Sort.sort(Bub_Sort.java:40)         at Bub_Sort.main(Bub_Sort.java:24)