2013-02-28 155 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;