Как получить адрес электронной почты и имя с адреса iPhone - PullRequest
0 голосов
/ 14 февраля 2012

Я пробовал это, но это дает сбой:

- (NSDictionary *)contacts {

    NSMutableArray *result = [NSMutableArray array];
    ABAddressBookRef addressBook = ABAddressBookCreate();
    CFArrayRef people = ABAddressBookCopyArrayOfAllPeople(addressBook);

    CFRelease(addressBook);

    NSArray *peopleArray = (NSArray *)people;

    //  Return if there are no contacts in the address book
    if (peopleArray && peopleArray.count > 0) {

        for (int i = 0; i <= peopleArray.count - 1; i++) {

            ABRecordRef person = [peopleArray objectAtIndex:i];
            ABRecordID sourceID = ABRecordGetRecordID(person);

            ABMutableMultiValueRef multiEmail = ABRecordCopyValue(person, kABPersonEmailProperty);

            NSString *emailAddress = (NSString *) ABMultiValueCopyValueAtIndex(multiEmail, 0); //EXE BAD ACCESS

            [emailAddress release];
            CFRelease(multiEmail);

            NSLog(@"email address %@", emailAddress);

            NSString *sourceId = [NSString stringWithFormat:@"%i", sourceID];

            NSLog(@"%@", sourceId);
        }
    }

    if (peopleArray) CFRelease(people);
    return [NSArray arrayWithArray:result];
}

1 Ответ

1 голос
/ 14 февраля 2012

Старайтесь не выпускать addressBook, пока не закончите.У меня была похожая проблема , и это решило проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...