0

iOSのアドレス帳からモバイルセクションレコードのみを取得するにはどうすればよいですか?

モバイル セクション recordからフェッチされた 1 つのレコードのみを配列に追加したいと考えています。

それ、どうやったら出来るの。すべての電話プロパティ レコードを取得しています。しかし、モバイル セクション レコードのみを取得する必要があります。

NSArray *allPeople = (NSArray *)ABAddressBookCopyArrayOfAllPeople(myAddressBook);
NSLog(@"allpeople%@", allPeople);

for (id record in allPeople) {
    CFTypeRef phoneProperty = ABRecordCopyValue((ABRecordRef)record, kABPersonPhoneProperty);
    NSArray *phones = (NSArray *)ABMultiValueCopyArrayOfAllValues(phoneProperty);

    NSLog(@"phones %@",phones);

    CFRelease(phoneProperty);
    NSMutableDictionary *newRecord = [[NSMutableDictionary alloc] init];
    NSMutableString *newPhone = [[NSMutableString alloc] init];

    for (NSString *phone in phones) {
        if(![newPhone isEqualToString:@""])
            [newPhone appendString:@", "];
        [newPhone appendString:phone];
    }
4

1 に答える 1

0

このようなものを試すことができます..

ABMultiValueRef phoneNumbers = ABRecordCopyValue(abPerson, kABPersonPhoneProperty);
    if (phoneNumbers) {
        CFIndex numberOfPhoneNumbers = ABMultiValueGetCount(phoneNumbers);
        for (CFIndex i = 0; i < numberOfPhoneNumbers; i++) {
            NSString *phone = (__bridge_transfer NSString *)ABMultiValueCopyValueAtIndex(phoneNumbers, i);
            CFStringRef label = ABMultiValueCopyLabelAtIndex(phoneNumbers, i);
            if (label) {
                if (CFEqual(label, kABPersonPhoneMobileLabel)) {
                    primaryPhoneText.text = phone;
                } else {
                }
                CFRelease(label);
                [allPhones addObject:phone]; // allPhones is an array here.
            }
        }
        CFRelease(phoneNumbers);
    }

これがあなたを助けることを願っています..

コーディングを楽しんでください..

于 2013-08-19T12:08:23.230 に答える