で電話のプロパティを取得するABAddressBook
には、ループを使用します。
編集:私が試したコード:
ABMultiValueRef phones = ABRecordCopyValue(contactPerson, kABPersonPhoneProperty);
for (NSUInteger j = 0; j < ABMultiValueGetCount(phones); j++) {
NSMutableString *phone = [CFBridgingRelease(ABMultiValueCopyValueAtIndex(phones, j)) mutableCopy];
if ([phone hasPrefix:@"06"] || [phone hasPrefix:@"07"]){
person.number = phone;
}
しかし、これが最良の選択肢だとは思いません..?
たぶん次のようなもの:
if (ABMultiValueRef hasprefix...06 || 07){
person.number = phones
}
連絡先に電話番号の値が複数ある場合は、 でカウントできますABMultiValueGetCount(phones)
。
さて、例を見てみましょう:
連絡先 « Peter » には、ABAddressBook
(電話番号NSLog
) に 5 つの電話番号があります:
02 35 00 00 00
07 00 00 00 00
+1(919)949-8234
06 00 00 00 00
9009498923
これらの数字を並べ替えて、1 つだけを に保存したいと思いますNSString
。
番号が 07 で始まる場合 —> TAKE IT. (に割り当てるNSString
)
番号が 06 で始まる場合 —> それを取ります。(に割り当てるNSString
)
他の番号の場合 —> 割り当てません。
それらが 2 つの電話番号である場合: 1 つは 06 で、もう 1 つは 07 で、最後に登録されABAddressBook
た番号を取得します (または、これが不可能または複雑すぎる場合は、07 で始まる番号を取得します)。
の連絡先ごとにこのループを作成したいと思いますABAddressBook
。すべての連絡先には 1 つの番号しかありません (番号が 06 または 07 で始まらない場合は 0)。
私の例では:
ピーターはこの番号を持っています: 07 00 00 00 00