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);
4

2 回答 2

11

试试这个:

[array valueForKey:specifyingKey]

希望这可以帮助!

于 2012-09-14T11:11:26.617 回答
2

只需使用 KVC。

[array valueForKey:@"age"]

应该给你一个年龄的数组。

于 2012-09-14T11:14:41.120 回答