Категории Objective C: я могу добавить свойство для метода не в моей категории?

Я хочу использовать категорию для создания метода на исходном классе доступным как свойство также.

Класс A:

@interface ClassA
- (NSString*)foo;
@end

Категория Class A

@interface ClassA (Properties)
- (void)someCategoryMethod;
@property (nonatomic, readonly) NSString *foo;
@end

Теперь, когда я делаю это, это, кажется, работает (РЕДАКТИРОВАНИЕ: Возможно, это не работает, это не жалуется, но я вижу странность), но это дает мне предупреждения, потому что я не синтезирую свойство в своей реализации категории. Как я говорю компилятору, что все на самом деле очень хорошо, так как исходный класс синтезирует свойство для меня?

28
задан Alex Wayne 26 March 2010 в 02:54
поделиться

2 ответа

Вот предупреждение, которое вы получаете:

предупреждение: свойство 'foo' требует определения метода '-foo' - используйте @synthesize, @dynamic или укажите метод реализация

Чтобы подавить это предупреждение, укажите в своей реализации следующее:

@dynamic foo;

32
ответ дан 28 November 2019 в 03:40
поделиться

Если что-то объявлено в интерфейсе вашей категории, это определение принадлежит реализации вашей категории.

1
ответ дан 28 November 2019 в 03:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: