2013-02-28 197 views
0

我有一個根據樹結構的對象列表。下面是示例代碼。如何從對象鏈獲取對象

Model model1 = [[Model alloc]init]; 
model1.name = @"ABC"; 


Model *model2 = [[Model alloc]init]; 
model2.name = @"DEF"; 


Model *model3 = [[Model alloc]init]; 
model3.name = @"GHI"; 

Model *model4 = [[Model alloc]init]; 
model4.name = @"JKL"; 

[model3.arr addObject:model4]; 
[model2.arr addObject:model3]; 
[model1.arr addObject:model2]; 

有沒有什麼辦法讓一個特定的對象沒有循環每一個其他的對象。 在此先感謝。

+1

我不明白你的要求是什麼? – 2013-02-28 10:49:52

+0

我不確定你在做什麼,但它看起來像是在下一課中設置數組的每個對象的變態。 – 2013-02-28 10:57:11

+0

是的,我正在做這件事 – 2013-02-28 11:07:11

回答

0

而不是使用一個數組(我認爲這是Model.arr是),以使用一個字典,因爲這提供了對象的快速查找,無需拖動整個集合。

但是,爲了使用字典,您需要提供唯一的密鑰才能訪問該對象。

我也建議暴露arr作爲執行手段的變化將打破依賴的代碼;而是提供添加,取出和刪除子模型的方法:

- (void)addModel:(Model *)model forKey:(NSString *)key; 
- (Model *)modelForKey:(NSString *)key; 
- (void)removeModelWithKey:(NSString *)key;