我根据树结构有一个对象列表。这是示例代码。
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];
有没有办法在不循环每个其他对象的情况下获取特定对象。 提前谢谢。
答案 0 :(得分:0)
不使用数组(我假设这是Model.arr
是)来保存子模型,而是使用字典,因为这样可以快速查找对象,而无需遍历整个集合。
但是,为了使用字典,您需要提供唯一的密钥才能访问该对象。
我还建议不公开arr
,因为这意味着实施更改会破坏相关代码;而是提供添加,获取和删除子模型的方法:
- (void)addModel:(Model *)model forKey:(NSString *)key;
- (Model *)modelForKey:(NSString *)key;
- (void)removeModelWithKey:(NSString *)key;