伪私有方法的实现文件中的方法原型?

时间:2011-08-15 19:35:02

标签: iphone objective-c ios xcode oop

我有一些方法,我没有在我的类的接口中声明,因为只有类中的代码才应该使用它们。但是当方法想要调用在它们下面实现的方法时,我的方法的安排会产生一些“......可能不响应选择器......”警告。

有没有办法可以在我的实现文件中为这些伪私有方法声明原型,这样我就不会收到这些警告了?

3 个答案:

答案 0 :(得分:7)

您可以使用class extension。我更喜欢它们而不是类别(为此目的),因为它们声明的方法必须在相应类的主@implementation块中实现

  

类通常具有公开声明的API,然后私有声明其他方法,仅供类所在的类或框架使用。您可以在上面提到的私有头文件或实现文件中的类别(或多个类别)中声明此类方法。这样可行,但编译器无法验证是否已实现所有声明的方法。

     

类扩展允许您在主类@interface块内的其他位置为类声明其他必需的方法

您声明了一个类扩展,如下所示:

@interface MyObject () // No name is given in the parentheses

答案 1 :(得分:1)

只需使用一个类别 - 我在我的.m文件中执行类似的操作:

@interface MyClass (PrivateMethods)
- (void)privateMethod1;
- (void)privateMethod2:(NSString *)aParam;
@end

@implementation MyClass
- (void)privateMethod1;
- (void)privateMethod2:(NSString *)aParam;
@end

答案 2 :(得分:0)

objective-c中不存在私有方法。看这篇文章。

Best way to define private methods for a class in Objective-C