如何从对象链中获取对象

时间:2013-02-28 10:47:56

标签: iphone objective-c

我根据树结构有一个对象列表。这是示例代码。

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 个答案:

答案 0 :(得分:0)

不使用数组(我假设这是Model.arr是)来保存子模型,而是使用字典,因为这样可以快速查找对象,而无需遍历整个集合。

但是,为了使用字典,您需要提供唯一的密钥才能访问该对象。

我还建议公开arr,因为这意味着实施更改会破坏相关代码;而是提供添加,获取和删除子模型的方法:

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