Iphone 为什么xcode有时会发现头文件中没有声明的实例方法?

Iphone 为什么xcode有时会发现头文件中没有声明的实例方法?,iphone,objective-c,xcode,Iphone,Objective C,Xcode,当然,在头文件中声明所有方法是最好的做法,因此当xcode警告我时,我会比找不到实例方法更感激。但是,在某些情况下,我没有在头中声明方法,并且没有收到警告。这些绝对不是任何委托方法,那么还有什么其他情况会导致这种行为呢?该方法在使用时可能已经在实现中定义好了。i、 e.如果所使用的方法高于在实现文件中使用的位置,则编译器知道该方法签名,因此一切正常。在使用该方法时,该方法可能已在实现中定义。i、 e.如果所使用的方法位于其在实现文件中使用的位置之上,则编译器知道方法签名,因此一切正常。如果您的方

当然,在头文件中声明所有方法是最好的做法,因此当xcode警告我时,我会比找不到实例方法更感激。但是,在某些情况下,我没有在头中声明方法,并且没有收到警告。这些绝对不是任何委托方法,那么还有什么其他情况会导致这种行为呢?

该方法在使用时可能已经在实现中定义好了。i、 e.如果所使用的方法高于在实现文件中使用的位置,则编译器知道该方法签名,因此一切正常。

在使用该方法时,该方法可能已在实现中定义。i、 e.如果所使用的方法位于其在实现文件中使用的位置之上,则编译器知道方法签名,因此一切正常。

如果您的方法未在头文件(或类扩展名)中声明,但是在引用它的另一个方法之前,您不会得到错误。

如果您的方法没有在头文件(或类扩展名)中声明,而是在引用它的另一个方法之前,那么您不会得到错误。

如果您在方法体定义下调用您的方法,它会工作,比如:

-(void)foo { bla }
[self foo];
如果您也以另一种方式将其崩溃(如果该方法不在头文件中):


如果在
方法体定义下调用方法,它将起作用,如:

-(void)foo { bla }
[self foo];
如果您也以另一种方式将其崩溃(如果该方法不在头文件中):