У меня есть класс с именем MyClass
, который имеет небольшой вложенный внутренний класс с именем MyInnerClass
. Файл реализации выглядит следующим образом (и также содержит ivar вложенного внутреннего класса):
@class MyInnerClass;
@interface MyClass
{
MyInnerClass *myInnerClassIvar;
}
@property(nonatomic, retain) MyInnerClass *myInnerClassIvar;
@end
Затем в файле реализации я реализую MyClass
и MyInnerClass
. Похоже на следующее:
@interface MyInnerClass
{
iVar *x;
}
@property(nonatomic, retain) iVar *x;
@end
@implementation MyInnerClass
@synthesize x;
...
@end
@implementation MyClass
@synthesize myInnerClassIvar;
...
@end
Я сейчас создаю подкласс для MyClass
, и в нем я пытаюсь сделать вызов, подобный этому:
self.myInnerClassIvar.x
И я получаю следующее сообщение:
Property x cannot be found in in forward class object MyInnerClass *
Я что-то забыл? Раньше не реализовывал внутренний класс, не вижу причин, почему это не должно работать.
ОБНОВЛЕНО: я переместил интерфейс MyInnerClass в .h MyClass, и все работает. Это хорошее решение?