Извлечение полного имени и номера адресной книги из цели ABperson c iphone - PullRequest
0 голосов
/ 16 июля 2010

Мне нужно знать, как извлечь каждое имя и номер из адресной книги в xcode для iphone.Мне нужно иметь имя и номер в следующем формате:

Джон Доу: 000000000000000 Джейн Доу: 000000000000000

1 Ответ

7 голосов
/ 16 июля 2010

Вы ищете все телефонные номера всех людей в адресной книге? Посмотрите на ABAddressBookCopyArrayOfAllPeople .

Вы можете использовать его следующим образом: (не проверено в браузере)

    ABAddressBookRef _addressBookRef = ABAddressBookCreate ();
    NSArray* allPeople = (NSArray *)ABAddressBookCopyArrayOfAllPeople(_addressBookRef);
    NSMutableArray* _allItems = [[NSMutableArray alloc] initWithCapacity:[allPeople count]]; // capacity is only a rough guess, but better than nothing
    for (id record in allPeople) {
        CFTypeRef phoneProperty = ABRecordCopyValue((ABRecordRef)record, kABPersonPhoneProperty);
        NSArray *phones = (NSArray *)ABMultiValueCopyArrayOfAllValues(phoneProperty);
        CFRelease(phoneProperty);
        for (NSString *phone in phones) {
            NSString* compositeName = (NSString *)ABRecordCopyCompositeName((ABRecordRef)record);
            NSString* field = [NSString stringWithFormat@"%@:%@",compositeName,phone];
            [compositeName release];
            [_allItems addObject:field];
        }
        [phoness release];
    }
    CFRelease(_addressBookRef);
    [allPeople release];
    allPeople = nil;
...