0
我正在爲iOS構建一個靜態庫,我希望有一些方法可供庫中的所有類訪問,但不能在庫之外訪問。讓我們做一個例子:只有靜態庫中的類才能訪問的方法
這是一個叫做與庫外可用兩種方法類:
@interface A : NSObject
-(void)methoAvailableOutside1;
-(void)methoAvailableOutside2;
//This method has to be visible only to classes within the library
-(void)methodInternalToTheLibrary;
@end
稱爲B類仍然是內部圖書館。它可以調用屬於所有方法(也是方法應該是「內部」):到
#import "B.h"
@implementation B
-(instancetype)init{
self = [super init];
if(self){
_aObject = [[A alloc]init];
[_aObject methoAvailableOutside1];
[_aObject methoAvailableOutside2];
//here I can call the "internal" method
[_aObject methodInternalToTheLibrary];
}
return self;
}
@end
現在讓我們寫一個外部類(外部:
這是B的實施圖書館,明確):
#import "MyCustomLibrary.h"
@interface ExternalClass : NSObject
@property A* aObject;
@end
這是外部類的實現:
#import "ExternalClass.h"
@implementation ExternalClass
- (instancetype)init
{
self = [super init];
if (self) {
_aObject = [[A alloc]init];
[_aObject methoAvailableOutside1];
[_aObject methoAvailableOutside2];
//!!!Here THIS SHOULD BE...
[_aObject methodInternalToTheLibrary];
//...FORBIDDEN!!!
}
return self;
}
@end
我該如何做到這一點?先謝謝你。