Я пытаюсь скрыть сеттер в @property для заголовка я делает общедоступными в рамках Я здание:Частная собственность, «пакет» сеттер
//File: X.h
@interface X
@property (nonatomic,readonly, strong) NSString* identifier;
@end
У меня есть категория что добавляет некоторые методы этого интерфейса:
//File: X+implementation.h
@interface X (Implementation)
...
@end
Эта категория доступна только в моем проекте, то есть я не делаю это общественность, когда я строю рамки. Многие источники говорят, что я должен добавить расширение интерфейса с свойством readwrite, но это бесполезно, так как моя категория не сможет увидеть определение readwrite на «X.m». Так я думал, чтобы добавить его в категории декларации:
//File: X+implementation.h
@interface X()
@property (nonatomic, readwrite, strong) NSString* identifier;
@end
//same file
@interface X (Implementation)
...
@end
это компилируется, но дает мне [X setIdentifier]: непризнанные селектор посланный к экземпляру
Я попытался повторить расширение на Xm, чтобы вручную создать сеттеры под Xm, вручную @synthesize переменную, но ни одна из них не работает. Что мне делать в этом случае?
В 'Файл: X + implementation.h' интерфейс должен быть' @interface X (реализация) 'not' @interface X() ' –
Привет, Оливер, если вы видите, @interface X (Реализация) является также определяется под расширением, после того, как тот же комментарий файла – scooterman