2012-04-02 14 views
0

Ich habe ein Objekt namens Contact. Ein Kontakt hat eine Beziehung mit einer Reihe von PhoneNumber-Objekten.Zugriff auf Eigenschaften von Objekten in einem NSSet

Eine Telefonnummer hat eine Bezeichnung und eine Werteigenschaft (beide NSString-Zeiger).

Wie bekomme ich einen Satz von allen Telefonnummern Etiketten für einen bestimmten Kontakt? Hier

ist der Code für das, was ich tun will, aber ich denke, es muss einen einfacheren Weg geben:

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

Schauen Sie sich auch das Key-Value Coding Guide und Key-Value Observing Guide an. –

Antwort

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

NSSet hat eine ValueForKey: Instanz-Methode, die ValueForKey ruft: auf jeder es ist Mitglieder. Ich glaube, wenn Ihr Set mit phoneNumbers gefüllt ist, können Sie valueForKey: @ "label" aufrufen und es wird ein Set mit den jeweiligen Labels der phoneNumber zurückgegeben.

Verwandte Themen