2012-09-14 38 views
2

我想獲得數組只是指定在以下數組obj中的鍵值。如何獲取指定鍵的值數組?

Ex1) If specifying key "name", 
    wanted result is : {"James", "Jhone", "Michael", "Donald", "Mac"} 

Ex2) If specifying key "age", 
    wanted result is : {25,27,35,25,26} 

如何獲取?

請幫忙或建議。

NSArray *array = [[[NSArray alloc] initWithObjects: 
     @{@"name" : @"James", @"age" : @25}, 
       @{@"name" : @"Jhone", @"age" : @27}, 
       @{@"name" : @"Michael", @"age" : @35}, 
       @{@"name" : @"Donald", @"age" : @25}, 
       @{@"name" : @"Mac", @"age" : @26}, 
       nil] autorelease]; 

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"??? == name"]; 
NSArray *filtered = [array filteredArrayUsingPredicate:predicate]; 
NSLog(@"result : %@", filtered); 

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"??? == age"]; 
NSArray *filtered = [array filteredArrayUsingPredicate:predicate]; 
NSLog(@"result : %@", filtered); 
+0

http://stackoverflow.com/questions/5569632/nspredicate-to-match-any-entry-in-an-nsdatabase-with-value-that-c​​ontains-a-stri –

回答

11

試試這個:

[array valueForKey:specifyingKey] 

希望這有助於!

+0

該死的。在碰到_Post Your Answer_之前,我應該刷新一下。爲了速度而+1。 –

+0

@AnalogFile謝謝! –

+0

以上代碼工作良好。謝謝卡爾。 :D –

2

只需使用KVC即可。

[array valueForKey:@"age"] 

應該給你一個年齡層的數組。

+0

嗯..我認爲沒有getValueForKey方法。 :D –

+0

lol。當我在閱讀關於其他語言的技術文章時回覆ObjectiveC的東西時會發生什麼。糾正。 –

相關問題