Как смоделировать защищенные свойства и методы в target-c [duplicate]
Возможный дубликат:
Защищенные методы в объективе
Способ объявления частных свойств прост.
Вы заявляете, что в расширении, которое объявлено в .m файлах.
Скажем, я хочу объявить защищенные свойства и получить к нему доступ из класса и подкласса.
Вот что я попробовал:
//
// BGGoogleMap+protected.h
//
//
#import "BGGoogleMap.h"
@interface BGGoogleMap ()
@property (strong,nonatomic) NSString * protectedHello;
@end
Этот компилируется. Затем я добавил:
#import "BGGoogleMap+protected.h"
@implementation BGGoogleMap ()
-(NSString *) protectedHello
{
return _
}
@end
Проблема начинается. Кажется, я не могу реализовать расширение класса за пределами исходных файлов .m. Xcode потребует что-то внутри этой скобки.
Если я сделаю
#import "BGGoogleMap+protected.h"
@implementation BGGoogleMap (protected)
-(NSString *) protectedHello
{
return _
}
@end
Я не могу получить доступ к ivar _protectedHello, объявленному в BGGoogleMap + protected.h
Конечно, я могу использовать обычную категорию, а не расширение, но это означает, что у меня не может быть защищенных свойств.
И что же мне делать?