可能重复:
私有方法声明 Objective-C
我假设在 Objective-C 类方法中需要在 .h 文件中声明,使它们公开可见,或者在 .m 文件中使用类扩展名使其更加私有。
我认为如果没有首先声明该方法,xcode 会抱怨,但是我在我的主 AppDelegate 类中添加了一个方法而不声明它,并且一切正常。
我混淆了哪一部分,我应该声明该类的所有方法,还是如果该方法仅由该类使用而没有其他地方使用,是否可以?
可能重复:
私有方法声明 Objective-C
我假设在 Objective-C 类方法中需要在 .h 文件中声明,使它们公开可见,或者在 .m 文件中使用类扩展名使其更加私有。
我认为如果没有首先声明该方法,xcode 会抱怨,但是我在我的主 AppDelegate 类中添加了一个方法而不声明它,并且一切正常。
我混淆了哪一部分,我应该声明该类的所有方法,还是如果该方法仅由该类使用而没有其他地方使用,是否可以?
无论如何,您声明方法。在 .h 文件中
@interface ViewController : UIViewController
-(void)myMethod;
@end
或在 .m 的私有接口中
#import "ViewController.h"
@interface ViewController ()
-(void)myMethod;
@end
.h 文件中不需要声明所有类方法。仅在 .h 文件中声明您希望对其他人公开访问的那些方法。
Objective C 是非常动态的语言,它在运行时解析方法。这就是我们向对象发送消息而不是调用方法的原因(例如在 C++ 中)。因此,如果编译器没有看到方法声明,并不意味着该对象在运行时找不到它。
所以你实际上可以在任何你想要的地方定义 ObjC 方法(在任何文件中,甚至在不同的库中)。程序编译和链接的ObjC运行时都可以找到。