2012-04-02 121 views
0

我有一個名爲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

回答

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

NSSet中有valueForKey:調用valueForKey實例方法:在每一個它的成員。我相信如果你的電話號碼充滿電話號碼,你可以調用valueForKey:@「label」,它會返回一個包含每個電話號碼各自標籤的集合。