您可以使公共方法仅对您的静态库可见,但在其外部不可见。
这是如何做到的。
1) 创建一个在你的库之外使用的头文件
#import <Foundation/Foundation.h>
@interface ClassA : NSObject
@property(nonatomic,readwrite)BOOL publicProperty;
-(void)publicMethod;
@end
2)创建一个仅由静态库内部使用的类别
#import "ClassA.h"
@interface ClassA (Internal)
@property(nonatomic,readwrite)BOOL privateProperty;
-(void)privateMethod;
@end
注意将此文件命名为:“ClassA+Internal.h”
3) 在 .m 文件中再次声明你的私有属性和方法
#import "ClassA.h"
@interface ClassA ()
@property(nonatomic,readwrite)BOOL privateProperty;
-(void)privateMethod;
@end
@implementation ClassA
@synthesize publicProperty;
@synthesize privateProperty;
//...
@end
在静态库中使用私有属性和方法
在您的 ClassB.m 文件中导入 ClassA 类别的头文件
#import "ClassB.h"
#import "ClassA.h"
#import "ClassA+Internal.h"
现在您可以访问 ClassA 的私有属性和方法
创建没有私有属性和方法的静态库
创建静态库时,将“ClassA+Internal.h”类别头文件保留在“Build Phases”、“Copy Headers”的“private”或“project”头文件部分
这样,当您构建静态库时,外部将无法访问 ClassA+Internal.h 类别。