2012-04-09 1 views
2

Кто-нибудь имел проблемы с этим кодом ...Выпуск вызова ABAddressBookGetPersonWithRecordID

ABRecordRef person = ABAddressBookGetPersonWithRecordID (addressBook,recordID); 

У меня были серьезные проблемы с этим до сих пор. Я ранее размещал этот вопрос Intermittent error accessing core data model/contacts database

Однако, теперь я отследил его до этого метода, возвращающего значение NULL, несмотря на наличие законных значений addressBook и recordID.

Любая идея, почему это может произойти?

Большое спасибо

ответ

1

проводок ответ в случае, если это помогает другим ...

Оказывается, этот вопрос памяти связаны между собой. Я создал адресную книгу с помощью: ABAddressBookCreate(). Это происходило внутри цикла, поэтому его создавали снова и снова. Решение заключалось в том, чтобы перемещать создание за пределы цикла и балансировать с CFRelease (addressBook); команда.

Надеюсь, это поможет другим!

0

Я успешно сделал с адресной книгой добавлять, редактировать и удалять записи из контактов list.there нет такого типа ошибки не приходит. поместить это в файл .h ...

ABRecordID 
recordID; 

пут следующий код в

- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person 
{ 
recordID = ABRecordGetRecordID(person); 
NSLog(@"Record id is %d",recordID); 
} 

если Вы получаете reoord идентификатор в том, что тогда я думаю, что не было бы таких проблем occours. Давайте попробуем ...