bra*_*reb 0 iphone objective-c
我正在为iOS的静态库工作,并希望实现一些公共的方法,供库中的其他类使用,但不能向外看.基本上,我想创建类似于Apple的"私有"API调用.
我很好,有人能够调用这些方法,因为他们发现了他们的名字,但我只想掩盖他们从库中打包的头文件,以便XCode不给他们选择通过调用这些方法默认情况下,可能会发出警告.
知道如何实现这一目标吗?
一个想法如下 - 您可以在单独的.h文件中的单独类别中定义类的"私有"方法.例如,您可以将A类看起来如下所示:
啊
@interface A : NSObject {
}
- (void) foo; //public method
@end
Run Code Online (Sandbox Code Playgroud)
现在可以在不同的文件中声明A的私有方法:
A + Internal.h
@interface A (Internal)
- (void) bar; //private method
@end
Run Code Online (Sandbox Code Playgroud)
A的实现文件(A.m)可以具有两组方法的实现.
在静态库中,不要"+Internal"在名称中发布头文件.您的库的用户只能看到方法A.h,但库中的类可以同时使用这两种方法.
您可以在.m文件顶部或其自己的专用头文件中的类别 @interface MyClass(PrivateMethods)或类扩展@interface MyClass()中声明"私有"方法.
来自扩展程序:
类扩展类似于匿名类,除了它们声明的方法必须在相应类的主@implementation块中实现.
类通常具有公开声明的API,然后私有地声明其他方法,仅供类所在的类或框架使用.您可以在上面提到的私有头文件或实现文件中的类别(或多个类别)中声明此类方法.这可行,但编译器无法验证是否已实现所有声明的方法.
类扩展允许您在主类@interface块之外的位置为类声明其他必需的方法.
另请参见: 在Objective-C中为类定义私有方法的最佳方法
| 归档时间: |
|
| 查看次数: |
2225 次 |
| 最近记录: |