Accessor все еще не найден после использования @dynamic? - PullRequest
0 голосов
/ 18 февраля 2012

Мне любопытно, почему я все еще получаю предупреждения метода доступа, хотя у меня уже есть @dynamic в файлах реализации.Form и Module являются сущностями базовых данных, и их соответствующие классы автоматически генерируются Xcode.

В Form.h:

@property (nonatomic, retain) NSSet *modules;

В Form.m:

@dynamic modules;

(Сущность Form имеет модули как отношение ко многим, и оно само является обратным отношением модуля к одному.)

Как ни странно, модули также получаютпредупреждение об отсутствующих средствах доступа для простого свойства NSString *, которое также имеет свой @dynamic в файле .m.

В Module.h:

@property (nonatomic, retain) NSString * moduleDescription;

В Module.m:

@dynamic moduleDescription;

1 Ответ

0 голосов
/ 18 февраля 2012

Ах, я помню, у меня были временные дубликаты этих классов, созданные вручную, но с разными именами файлов.Но поскольку имена классов внутри остались прежними, я предполагаю, что компилятор видел их как продолжение одного и того же определения класса.После удаления дублированных классов с альтернативным именем (как .h, так и .m) предупреждения были устранены.

Мораль истории:

Устраните дублирующиеся заголовки или реализации, даже если ониимеют разные имена файлов.

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