Рассмотрим следующую реализацию нескольких классов:
.h реализации файлов трех разных классов
//superClass.h
...
@interface superClass
//Insert useful code
@end
//subClass.h
...
@interface subClass : superClass
//Insert useful code
@end
//Another class that uses various sub-classes of superClass
@interface anotherClass
{
superClass* myObj;
}
@property (strong, atomic) superClass* myObj;
@end
.m реализация файла anotherClass
@implementation anotherClass
@synthesize myObj;
...
//All of the code that uses the myObj property...
...
@end
Как мне установить экземпляр subClass
на экземпляр свойства anotherClass.myObj
?
В моем конкретном случае я хотел бы определить свойство, которое является UIViewController
. У меня есть несколько подклассов, UIViewControllers, и я должен иметь возможность обменивать их на определенные свойства в моем приложении iOS.
Каждый раз, когда я пытался установить один из моих дочерних UIViewControllers в свое свойство UIViewController
, приложение вылетало. Однако, если я переопределю свойство как экземпляр одного из дочерних классов, а затем создаю экземпляр подкласса, это работает отлично. Мне действительно нужно иметь возможность менять и менять эти контроллеры. Как я могу это сделать?
UPDATE
Ну, извините всех, кто смотрел на это. Получив очевидный ответ, я решил переписать весь связанный код. Я создал новое свойство с другим именем, закомментировал весь свой код назначения и переписал его, чтобы указать новое свойство. Работает так, как должно. Я не уверен, почему это не сработает в первый раз, но теперь оно ведет себя так, как должно. Однако я до сих пор не понимаю, почему мое приложение зависало.