我有一個cocos2d遊戲設置,它使用與此相似的基本繼承設置;使用isKindOfClass輸出數組中的對象的子項?
> Property (Base class)
> - Office : Property
> - Warehouse : Property
> - Bank : Property
所有屬性住在一個陣列listOfProperties
,我試圖打印出每個屬性的的NSLog,但我不知道該怎麼做。
例如,
// Create an office
Office *o = [Office alloc] init];
[o setName:@"Some office"];
[city.listOfProperties addObject:o];
[o release];
// Debug output all the properties in the game
// city.listOfProperties in an array of Property objects
for (Property *prop in city.listOfProperties) {
// I want to print out all the different properties here
if ([prop isKindOfClass:[Office class]]==YES)
{
NSLog(@"Office");
NSLog(@"office.name = %@", prop.name); // Prop name does not work
}
} // next
的問題是,一些屬性不共享相同的屬性。例如,辦公室可能有「樓層」,但倉庫有「能力」。
我需要的是打印出所有不同的屬性,但我不知道如何將指針prop
的焦點更改爲特定類(即:Office)的指針。
我需要他們全部生活在listOfProperties
,這樣我才能在CCMenu中使用它,並且希望避免將它們拆分成單獨的陣列,這對我來說很難管理。
有沒有辦法做到這一點?
謝謝
注意。並非所有Property的子節點都有'name'。這僅用於說明目的。有些根本沒有名字 – zardon