检查ios

时间:2015-09-29 13:50:32

标签: ios objective-c arrays dictionary

我有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的字典对象,我该怎么办呢?

2 个答案:

答案 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
   }
}