(
{
"date" = "23-02-2016";
filename = "65.pdf";
},
{
"date" = "23-02-2016";
filename = "78.pdf";
},
{
"date" = "23-02-2016";
filename = "abc.pdf";
}
)
我有一个这样的数组。我想找到文件名="abc.pdf"的字典索引。我怎样才能找到?我的数组是NSArray,字典是NSMutableDictionary。如果有人能指导我,那将是很大的帮助。
谢谢。。
var fileterArray: NSArray = yourArray.filteredArrayUsingPredicate(NSPredicate(format: "self.%@ contains[c] %@", "filename", "abc.pdf"))
for (NSInteger i=0;i<fileterArray.count:i++){
NSInteger anIndex=[yourArray indexOfObject:[fileterArray objectAtIndex:i]];
NSLog(@"%d",anIndex);
}
试试这个。
NSIndexSet *indexes = [array indexesOfObjectsPassingTest:^BOOL(id obj,NSUInteger idx, BOOL *stop){
NSString *s = (NSString*)obj;
NSRange range = [s rangeOfString: searchString];
return range.location != NSNotFound;
}];
我创建了示例 NSMutableDictionary 和 NSArray。使用谓词将"abc.pdf"文件名收集到 filterArray 中,并循环获取索引。
let dic1 : NSMutableDictionary = NSMutableDictionary.init(object: "23-02-2011", forKey: "date");
dic1.setValue("65.pdf", forKey: "filename");
let dic2 : NSMutableDictionary = NSMutableDictionary.init(object: "23-02-2012", forKey: "date");
dic2.setValue("65.pdf", forKey: "filename");
let dic3 : NSMutableDictionary = NSMutableDictionary.init(object: "23-02-2013", forKey: "date");
dic3.setValue("abc.pdf", forKey: "filename");
let dic4 : NSMutableDictionary = NSMutableDictionary.init(object: "23-02-2014", forKey: "date");
dic4.setValue("abc1.pdf", forKey: "filename");
let dic5 : NSMutableDictionary = NSMutableDictionary.init(object: "23-02-2015", forKey: "date");
dic5.setValue("abc.pdf", forKey: "filename");
let testArray :NSArray = NSArray.init(array: [dic1,dic2,dic3,dic4,dic5]);
let filterArray: NSArray = testArray.filteredArrayUsingPredicate(NSPredicate(format: "self.%@ contains[c] %@", "filename", "abc.pdf"));
for(var i = 0; i < filterArray.count; i++) {
let anIndex: NSInteger = testArray.indexOfObject(filterArray[i]);
NSLog("%d",anIndex);
}
如果字典值重复,它将为您提供过滤数组值,您将在此处获得所有值索引。
请尝试此片段。
let fileArray = yourArray.valueForKey("filename")
let indexofDict = fileArray.indexOfObject("abc.pdf")
print(indexofDict)