В интерфейсе у меня есть это:
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;
Очевидно,неверно, но я надеюсь, что этого достаточно, чтобы показать, что я пытаюсь сделать.Какова лучшая практика для этого?