我在实现中使用#pragma mark将我的方法安排到组中。但有时候,方法实现代码会出现在调用此方法的代码下面,而且我会收到“找不到实例方法”的警告。它发生在我使用私有方法时。如何解决?
答案 0 :(得分:8)
最简单的方法是使用匿名类别。在.m
:
@implementation
文件的顶部
@interface MyClass()
- (void)myPrivateMethod;
@end
答案 1 :(得分:1)
在这种情况下,您将在实现文件中使用类扩展来定义这些方法。通过这种方式,您的“公共”API仍然在头文件中定义,您的实现文件包含伪私有方法的定义。
YourClass.m
@interface MyClass()
- (void)myPrivateMethod;
@end
@implementation MyClass
- (void)myPublicMethod
{
// This will not throw an error or warning
[self myPrivateMethod];
}
- (void)myPrivateMethod
{
// Do something
}
@end
答案 2 :(得分:1)
在Class.m实现文件中,您可以在开头添加一个接口部分并在其中声明私有函数:
@interface YourClassName (private)
-(void)aPrivateMethod:(NSString*)aParameter;
...
@end
@implementation YourClassName
...
@end