我正在尝试过滤来自Facebook API的响应,JSON看起来像这样:
{
"Data": [
{
"first_name" : "Joe",
"last_name" : "bloggs",
"uuid" : "123"
},
{
"first_name" : "johnny",
"last_name" : "appleseed",
"uuid" : "321"
}
]
}
我将其加载到NSDictionary中,像[[friendDictionary objectForKey:@"data"] allObjects]
我现在正尝试根据有人在文本字段中输入名称时根据first_name
和last_name
进行过滤。这是我所拥有的,但它的失败可怕:
NSPredicate *filter = [NSPredicate predicateWithFormat:[NSString stringWithFormat:@"ANY.first_name beginswith[c] %@ OR ANY.last_name beginswith[c] %@", friendField.text, friendField.text]];
NSLog(@"%@", [[[friendDictionary objectForKey:@"data"] allObjects] filteredArrayUsingPredicate:filter]);
非常感谢任何帮助,谢谢你们
答案 0 :(得分:5)
你的想法太复杂了。
stringWithFormat
在predicateWithFormat
内没有任何意义。
[friendDictionary objectForKey:@"Data"]
返回一个数组,此处allObjects
错误。这给了
NSPredicate *filter = [NSPredicate predicateWithFormat:@"first_name beginswith[c] %@ OR last_name beginswith[c] %@",
friendField.text, friendField.text];
NSArray *filteredArray = [[friendDictionary objectForKey:@"Data"] filteredArrayUsingPredicate:filter];