В интерфейсе у меня есть следующее:
Animal* myPet;
Во время выполнения я могу захотеть, чтобы myPet был кошкой или собакой, которые являются подклассами Animal:
id newPet;
if(someCondition) {
newPet = [[Cat alloc] initWithNibName:@"Cat" bundle:nil];
} else {
newPet = [[Dog alloc] initWithNibName:@"Dog" bundle:nil];
}
self.myPet = newPet;
Очевидно это неверно, но я надеюсь, что этого достаточно, чтобы показать, что я пытаюсь сделать. Как лучше всего это делать?