访问NSSet中对象的属性

访问NSSet中对象的属性

问题描述:

我有一个名为Contact的对象。联系人与一组PhoneNumber对象有关系。访问NSSet中对象的属性

电话号码有一个标签和一个值属性(都是NSString指针)。

如何获取给定联系人的所有电话号码标签的集合?

这里是我想要做的代码,但我认为必须有一个更简单的方法:

NSSet *phoneNumbersSet = contact.phoneNumbers; 
NSArray *phoneNumbersArray = [phoneNumbersSet allObjects]; 
NSMutableSet *phoneNumberLabelSet = [NSMutableSet setWithCapacity:0]; 
for (PhoneNumber* phoneNumber in phoneNumbersArray) { 
    [phoneNumberLabelSet addObject:phoneNumber.label]; 
} 
+0

查看Key-Value Coding Guide和Key-Value Observing Guide。 – 2012-04-02 23:05:19

NSSet *phoneNumbersSet = contact.phoneNumbers; 
NSSet *phoneNumberLabelSet = [phoneNumbersSet valueForKey:@"label"]; 

NSSet中有valueForKey:调用valueForKey实例方法:在每一个它的成员。我相信如果你的电话号码充满电话号码,你可以调用valueForKey:@“label”,它会返回一个包含每个电话号码各自标签的集合。