如何在NSMutableDictionaries的NSMutableArray中搜索特定键的值?

时间:2016-08-29 11:12:01

标签: ios objective-c nsmutablearray nsmutabledictionary

你好我有NSMutableDictionary喜欢这个

<__NSArrayM 0x14e226ff0>(
{

DocumentName = "IMG_2597.JPG";
DocumentType = JPG;
Image = "<UIImage: 0x14e52c370> size {1239, 1242} orientation 0 scale 1.000000";

}

我在我的NSMutablearray中添加了几个对象。但我想检查NSMutablearray中是否已有此图片。实际上我正计划通过DocumentName进行搜索。如何检查数组中DocumentName键是否已存在相同的值。如果只有NSMutableDictionary尚未存在,我想添加NSMutabledictionary。这就是我创建NSMutableDictionary *imageDictionary=[[NSMutableDictionary alloc] init]; [imageDictionary setObject:chosenImage forKey:@"Image"]; [imageDictionary setValue:strDocNAme forKey:@"DocumentName"]; [imageDictionary setValue:strExtension forKey:@"DocumentType"]; [mutarrayImages addObject:imageDictionary]; 对象的方式。

{{1}}

请帮帮我。 感谢

3 个答案:

答案 0 :(得分:2)

您可以尝试使用其中一种检查图像是否已存在。

1)使用谓词

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"DocumentName = 'IMG_2597.JPG'"];
NSArray *arr = [yourArray filteredArrayUsingPredicate:predicate];
if (arr.count > 0) {
    NSLog(@"Object is contain");
}

2)使用valueForKey

NSArray *documentName = [yourArray valueForKey:@"DocumentName"];
if ([documentName containsObject:@"IMG_2597.JPG"]) {
     NSLog(@"Object is contain");
}

答案 1 :(得分:1)

NSSet* myValuesSet = [NSSet setWithArray: [mutarrayImages valueForKey:@"DocumentName"]];
if ([[myValuesSet allObjects] containsObject:< DocumentName to compare >]) {
    NSLog(@"Exist");
}
else{
    NSLog(@"Does not exist");
}

答案 2 :(得分:0)

.group()