1

嗨,我有一个包含 200 个左右对象的数组。这些对象中的每一个都是另一个具有 6 个混合类型字段(整数、字符串和布尔值)的数组。

2个问题...

我可以搜索数组以找到具有特定元素的对象,即所有具有元素“A”= TRUE 的对象。

如何从其中一个对象更新单个元素?我是否必须找到该对象(从父数组中,因此我问第一个问题),删除它然后添加一个带有更新字段的新对象?似乎有点矫枉过正,但这是我需要做的吗?无论如何只是为了更新那个单一的元素?

4

1 回答 1

1

是的,您可以搜索它,是的,如果您要更改值,则必须这样做。您可以使用 indexOfObjectPassingTest 来查找对象。在您发布的示例中,您将像这样使用它(假设您的对象是每个字典,其中一个字段为“A”):

NSUInteger indx =[myArray indexOfObjectPassingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop) {
        return [[obj valueForKey:@"A"] isEqualToNumber:[NSNumber numberWithBool:TRUE]];
    }];

indx 将是数组中通过该测试的对象的索引。

于 2012-05-20T15:41:46.347 回答