類類型在接口方面我有這樣的:目標C - 在運行時確定
Animal* myPet;
在運行時,我可能要myPet是一隻貓或狗,這是動物的子類:
id newPet;
if(someCondition) {
newPet = [[Cat alloc] initWithNibName:@"Cat" bundle:nil];
} else {
newPet = [[Dog alloc] initWithNibName:@"Dog" bundle:nil];
}
self.myPet = newPet;
顯然這是不正確的,但我希望它足以顯示我正在嘗試做什麼。這樣做的最佳做法是什麼?
爲什麼這樣說錯了? – 2011-01-06 23:54:35
請注意,在您的代碼中執行大量`isKindOfClass:`通常表示您正在以艱難的方式做事。 – bbum 2011-01-07 00:01:22