访问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];
}
答
NSSet *phoneNumbersSet = contact.phoneNumbers;
NSSet *phoneNumberLabelSet = [phoneNumbersSet valueForKey:@"label"];
NSSet中有valueForKey:调用valueForKey实例方法:在每一个它的成员。我相信如果你的电话号码充满电话号码,你可以调用valueForKey:@“label”,它会返回一个包含每个电话号码各自标签的集合。
查看Key-Value Coding Guide和Key-Value Observing Guide。 – 2012-04-02 23:05:19