我收到错误/警告,我的部分代码说'没有匹配方法签名的消息将被假定为返回'id'并接受'...'作为参数。)' 我不明白为什么我收到这个错误,所以我正在寻找一些帮助,下面是实现文件中代码部分的链接。
这是错误。
alt text http://snapplr.com/snap/qw1r
谢谢:)
答案 0 :(得分:4)
此警告通常表示您的签名可能不同,或者您尚未声明方法的原型。
例如,你可能做过这样的事情:
// Prototype
-(void) foo:(float)bar;
// Calling the function
int blargh = 3;
[myClass bar:blargh];
您是否看到签名不匹配?通常,当我收到警告时,这就是问题所在。虽然你可能完全忽略了它的原型,但这会导致同样的问题。 Objective-c将接受您传递给对象的任何消息,即使技术上未指定您也是如此。
答案 1 :(得分:2)
从您的代码中,您似乎正在访问self
的objectArray 属性。你有.h文件中定义的那个吗?
@interface DragController : UIViewController
{
NSArray* objectArray;
}
@property (nonatomic, retain) NSArray* objectArray;
如果@property
不存在,那么您的课程不会回复[self objectArray]
。如果需要其他对象来访问它,则只需要该属性。如果您只想访问实例变量,则可以单独使用objectArray
,因此只需将[[self objectArray] indexOfObject...
替换为[objectArray indexOfObject...
,警告就会消失。如果objectArray确实是一个方法,它应该在你的.h文件中,在{ instance variables }
部分之后显示为:
-(NSArray*)objectArray;
在.m文件中:
-(NSArray*)objectArray
{
// return the array here
}