作者:emddh989 | 来源:互联网 | 2023-05-25 15:46
在实现搜索功能时,我需要过滤字典数组.我正在使用自动完整的文本字段方法搜索栏并将其存储到字符串中.我能够解析数组,但面对下面的json
[{"CertProfID":"4","Name":"Dodge","Location":"loc4","City":"city4","State":"state4","Zip":"zip5","Website":"http:\/\/cnn.com","Phone":"phone4","Email":"email4"},
{"CertProfID":"5","Name":"cat","Location":"loc5","City":"city5","State":"State5","Zip":"zip5","Website":"web5","Phone":"phone5","Email":"email5"}]
在这里,我需要过滤字典以使其完成
我尝试使用下面的代码但其返回的数组具有空值:(
NSString *substring = [NSString stringWithString:textField.text];
NSLog(@"substring %@",substring);
NSMutableArray *arr2Filt= [arraylist valueForKey:@"Name"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains[c] %@",substring];
filteredarr = [NSMutableArray arrayWithArray:[arr2Filt filteredArrayUsingPredicate:predicate]];
Muhammad Waq..
8
此代码将解决您的问题,它将返回一个字典数组
NSString *substring = [NSString stringWithString:textField.text];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"Name contains[c] %@",searchString];
NSArray *filteredArry=[[arrayOfDict filteredArrayUsingPredicate:predicate] copy];
arrayOfDict是您原始的字典数组
Swift 3.0版 :::
let namePredicate = NSPredicate(format: "Name contains[c] %@",searchString)
let filteredArray = arrayOfDict.filter { namePredicate.evaluate(with: $0) }
print("names = \(filteredArray)")
希望它会对你有所帮助
1> Muhammad Waq..:
此代码将解决您的问题,它将返回一个字典数组
NSString *substring = [NSString stringWithString:textField.text];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"Name contains[c] %@",searchString];
NSArray *filteredArry=[[arrayOfDict filteredArrayUsingPredicate:predicate] copy];
arrayOfDict是您原始的字典数组
Swift 3.0版 :::
let namePredicate = NSPredicate(format: "Name contains[c] %@",searchString)
let filteredArray = arrayOfDict.filter { namePredicate.evaluate(with: $0) }
print("names = \(filteredArray)")
希望它会对你有所帮助