我有一个NSArray
的NSDictionaries
。我需要NSArray
的更新的NSDictionaries
,其值是用新值更新的字典键之一。
请参见下面的NSArray
结构。如果Key3
与某个值匹配(例如2),我想在此结构内更新Key1
的值。最快的方法是什么?我不想使用传统的For循环。
[myArray valueForKeyPath:@"@unionOfObjects.Key3"];
<__NSCFArray 0xe70c10>(
{
Key1 = 1;
Key2 = "New Location";
Key3 = (
Data1,
Data2,
Data3
);
},
{
Key1 = 2;
Key2 = "Old Location";
Key3 = (
Data1,
Data2,
Data4
);
}
)
最佳答案
我们可以使用谓词来解决它:
NSArray *dictionaryArray;
NSNumber *key =@2;
NSPredicate *predicate =[NSPredicate predicateWithFormat:@"Key1=%@",key];
NSArray *result =[dictionaryArray filteredArrayUsingPredicate:predicate];
结果数组现在所有字典都具有(key1 = 2)
字典不能直接编辑,它们必须是NSMutableDictionary才能编辑。假设它们是NSMutableDictionary实例:
NSMutableDictionary *dic =result[0];
[dic setObject:someObject forKey:@"key3"];
关于ios - 更新NSArray中的NSDictionary,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21484706/