2012-04-02 27 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」も参照してください。 –

答えて

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

NSSetはvalueForKeyがありますvalueForKeyを呼び出すインスタンスメソッド:それのそれぞれのオンをメンバー。あなたのセットがphoneNumbersでいっぱいになっている場合は、valueForKey:@ "label"を呼び出すことができ、それぞれのphoneNumberの各ラベルとともにセットを返します。

関連する問題