2014-03-04 86 views
-1

我有一类人:如何获取数组中的对象属性数组?

@interface Person : NSObject 
{ 
    NSInteger *_age 
    NSString *_name; 
} 
@property (nonatomic, strong) NSInteger *age; 
@property (nonatomic, strong) NSString *name; 
@end 

然后,我有人员的的NSArray:

Person *personA; 
Person *personB; 
allPersons = @[personA, personB]; 

我如何得到所有名的数组:

allPersonNames = @[Max, Bob]; 

比其他循环遍历所有对象,并将name属性添加到NSMutableArray中,这对于单行代码来说可能吗?

感谢

+0

请记录你的'数组',因为你对数据结构的描述看起来不正确/有效。你似乎在混淆数组和字典...... – Wain

+0

谢谢Wain,编辑了上面的例子。 – Manuel

+0

不是字典数组,但是@robmayoff的答案仍然适用 – Wain

回答

4

您可以使用键 - 值编码名称的数组,像这样:

当:

NSArray *names = [allPersons valueForKey:@"name"]; 

这在section “Getting Attribute Values Using Key-Value Coding” of the Key-Value Coding Programming Guide最后一段记录对于包含to-many属性的关键字的关键路径返回值,并且该关键字不是路径中的最后一个关键字,则返回值是一个集合,其中包含关键字的所有值他是对多关键的权利。例如,请求关键路径transactions.payee的值返回一个包含所有交易对象的所有收款人对象的数组。这也适用于关键路径中的多个数组。关键路径accounts.transactions.payee将为所有帐户中的所有交易返回一个包含所有收款人对象的数组。

相关问题