您可以使公共方法仅对静态库可见,但在其外部不可见。
以下是具体操作方法。
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
Note将此文件命名为:“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"
现在您可以访问 A 类的私有属性和方法
创建没有私有属性和方法的静态库
创建静态库时,将“ClassA+Internal.h”类别头文件保留在“构建阶段”、“复制标头”的“私有”或“项目”标头部分中
这样,当您构建静态库时,外部将无法访问 ClassA+Internal.h 类别。