Цель C - определить тип класса во время выполнения

В интерфейсе у меня есть следующее:

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;

Очевидно это неверно, но я надеюсь, что этого достаточно, чтобы показать, что я пытаюсь сделать. Как лучше всего это делать?

5
задан sol 6 January 2011 в 23:38
поделиться