我有NSMutableArray
名为sourceData
,其中包含许多具有相同键的字典对象:ID,NAME,CONTENT。
[ //sourceData
{ID:1, NAME:@"Bob", CONTENT:@"words"},
{ID:2, NAME:@"Bob", CONTENT:@"words"},
{ID:3, NAME:@"Bob", CONTENT:@"words")
];
我有另一个名为dataToAdd
的数组。我想要做的是迭代数组dataToAdd
,如果对象没有相同的ID值,只将对象添加到sourceData
。
换句话说,如果数组sourceData
包含ID为X的字典对象,我该怎么办呢?
答案 0 :(得分:5)
您应该使用谓词来过滤数组。
NSArray *filtered = [sourceData filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"(ID == %@)", @(ID_YOU_WANT_TO SEARCH)]];
这将返回包含所请求ID的所有词典的数组。
答案 1 :(得分:0)
在sourceData
上为字典运行for-in循环,并获取密钥的值,在本例中为ID。
看起来应该是这样的
for (NSDictionary *aDict in sourceData) {
if ([[aDict objectForKey:@"ID"] intValue] == 1) {
// id was indeed 1, replace '1', with the id that you're looking for
}
}