访问NSSet中对象的属性

时间:2012-04-02 22:49:27

标签: ios nsobject nsset

我有一个名为Contact的对象。联系人与一组PhoneNumber对象有关系。

电话号码具有标签和值属性(两个NSString指针)。

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

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

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

1 个答案:

答案 0 :(得分:3)

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

NSSet有一个valueForKey:instance方法,它在每个成员上调用valueForKey :.我相信如果你的套装中装满了phoneNumbers,你可以调用valueForKey:@“label”,它将返回一个包含每个phoneNumber各自标签的集合。