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];

有没有办法在不循环每个其他对象的情况下获取特定对象。提前致谢。

4

1 回答 1

0

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

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

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

- (void)addModel:(Model *)model forKey:(NSString *)key;
- (Model *)modelForKey:(NSString *)key;
- (void)removeModelWithKey:(NSString *)key;
于 2013-02-28T10:53:51.710 回答