Я строю статическую библиотеку для iOS, и я хотел бы, чтобы некоторые методы были доступны для всех классов в библиотеке, но не вне библиотеки. Давайте сделаем пример:Метод, доступный только для классов в статической библиотеке
Это класс называется с двумя методами, доступными за пределами библиотеки:
@interface A : NSObject
-(void)methoAvailableOutside1;
-(void)methoAvailableOutside2;
//This method has to be visible only to classes within the library
-(void)methodInternalToTheLibrary;
@end
Класс называется B по-прежнему внутренняя библиотека. Можно назвать все методы, принадлежащих A (также метод, который должен быть «внутренним»):
Это реализация 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
Теперь давайте писать ВНЕШНИЙ класс (внешних по отношению к библиотека, ясно):
#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
Как я могу это достичь? Заранее спасибо.