1

名簿から電話番号を取得しています。私はそれをこのようにやっています:

ABMultiValueRef arrTelefonos = ABRecordCopyValue(contacto,kABPersonPhoneProperty);
for(int i=0;i<ABMultiValueGetCount(arrTelefonos);i++) {
   CFStringRef labelTelefono = ABMultiValueCopyLabelAtIndex(arrTelefonos,i);
   CFStringRef numeroTelefono = ABMultiValueCopyValueAtIndex(arrTelefonos,i);
   CFStringRef labelTelefonoLoc = ABAddressBookCopyLocalizedLabel(labelTelefono);
   /* Do some stuff */
}

1つの場合を除いて、すべて問題ありません。特殊文字でラベル付けされた電話との連絡がある場合(私の場合、ラベルは「Teléfono」と「é」です。実行すると「無効なCFStringRef」が表示されます。

CFStringRef labelTelefono = ABMultiValueCopyLabelAtIndex(arrTelefonos,i);

CFStringRefが特殊文字を許可しないために問題がありますか?それが問題なら、誰かが解決策を知っていますか?

前もって感謝します

4

1 に答える 1

-1
NSMutableArray *phoneNumbers = [[NSMutableArray alloc] init];

        ABMultiValueRef multiPhones = ABRecordCopyValue(person, kABPersonPhoneProperty);
        for(CFIndex i=0;i<ABMultiValueGetCount(multiPhones);i++) {

            CFStringRef phoneNumberRef = ABMultiValueCopyValueAtIndex(multiPhones, i);
            NSString *phoneNumber = (__bridge NSString *) phoneNumberRef;
            [phoneNumbers addObject:phoneNumber];

            //NSLog(@"All numbers %@", phoneNumbers);

        }
于 2014-06-09T13:58:08.960 に答える