скрыть @property в цель C - PullRequest
       1

скрыть @property в цель C

1 голос
/ 29 ноября 2010

Как скрыть @property (сохранить, неатомный) NSString * str в некотором классе?

Ответы [ 2 ]

6 голосов
/ 29 ноября 2010

Если вы хотите скрыть его от отображения в файле .h, попробуйте использовать расширение частного класса в файле .m:

@interface YourClass ()

@property(retain, nonatomic)NSString*str;

@end
2 голосов
/ 29 ноября 2010

Вы можете использовать функцию под названием «категории», которая позволяет расширять существующий класс путем добавления к нему свойств и методов.

Как правило, вы используете пустую категорию в файле .m вашего класса для частных методов и свойств и определяете отдельную именованную категорию во внешнем файле .h для защищенных членов. Категории на самом деле довольно интересны тем, что позволяют переопределить существующих свойств. Так, например, вы можете определить свойство только для чтения в вашем .h файле:

@interface Whatever {
    NSObject *aValue;
}

@property (nonatomic,retain,readonly) NSObject *aValue;

@end

И затем вы можете настроить чтение и запись для личного использования в пустой категории внутри вашего файла .m:

@interface Whatever()
  @property (nonatomic,retain) NSObject *aValue;
@end

Вы можете найти больше о категориях здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...