我有一个数组,可以容纳200个左右的对象。这些对象中的每一个都是具有6个混合类型字段(整数,字符串和粗体)的另一个数组。
2个问题......
我可以搜索数组以找到具有某个元素的对象,即所有具有元素“A”= TRUE的对象。
如何从其中一个对象更新单个元素?我是否必须找到该对象(从父数组中查询为什么我问第一个问题),删除它然后添加一个带有更新字段的新对象?看起来有点矫枉过正,但这是我需要做的吗?反正只是为了更新那个元素?
答案 0 :(得分:1)
是的,您可以搜索它,是的,如果您要更改值,则必须这样做。您可以使用indexOfObjectPassingTest来查找对象。在你发布的例子中,你会像这样使用它(假设你的对象是每个字段为“A”的字典):
NSUInteger indx =[myArray indexOfObjectPassingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop) {
return [[obj valueForKey:@"A"] isEqualToNumber:[NSNumber numberWithBool:TRUE]];
}];
indx将是在数组中传递该测试的对象的索引。