我使用NSPredicate从NSMutableArray中提取数据:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", value];
NSArray *results = [array_to_search filteredArrayUsingPredicate:predicate];
当我使用时:
NSLog(@"%@", results);
我明白了:
({pub_id = 102 "pub_name" = "some publisher" city = "Peshawar"});
我想提取所有3个项pub_id
,pub_name
,city
的值。
答案 0 :(得分:1)
返回的是一个包含1个对象的数组(用花括号{}
表示一个字典)。要提取三个组件中的每一个,您可以执行以下操作:
NSString *pub_id = [[results objectAtIndex:0] valueForKey:@"pub_id"];
NSString *pub_name = [[results objectAtIndex:0] valueForKey:@"pub_name"];
NSString *city = [[results objectAtIndex:0] valueForKey:@"city"];
请记住,此解决方案仅适用于您提供的示例。如果查询在数组中返回多个对象,则需要使用enumeration / for循环来读取结果。
答案 1 :(得分:0)
我已经明白你想分别得到这三个对象,不是吗? 如果我是对的:
NSLog(@"PUBID: %d \n PUBNAME: %@ \n CITY: %@", [[results objectAtIndex:0] intValue], [results objectAtIndex:1], [results objectAtIndex:2]);
此代码应打印
PUBID:102
PUBNAME:一些出版商
城市:白沙瓦。
所以你的结果来自
[array_to_search filteredArrayUsingPredicate:predicate];
是另一个数组,您可以将其与objectAtIndex:
一起使用答案 2 :(得分:0)
要将字典中的所有值都放到数组中,请执行以下操作:
[dictionary allValues];
答案 3 :(得分:0)
使用prodicate从数组中获取的对象显然是一个NSDictionary。使用以下代码:
NSString *city = [[results objectAtIndex:0] valueForKey:@"city"];
等等。