2013-12-06 3 views
1

Код, который был написан мной, работал до тех пор, пока я не попытался переместить сохранение в новый поток. в ViewController.h я назначен ABAddressBookRef:ABAddressBookSave вызывает EXC_BAD_ACCESS ARC Enabled

ViewController.h 

ABAddressBookRef addressBook; 

и ViewController.m файла создали объект Addressbook

ViewController.m 
addressBook = ABAddressBookCreateWithOptions(NULL, anError); 
/// ... getting a person name and modify it. the code is OK. tested before the NSThread thing 
NSThread *saveThread = [[NSThread alloc] initWithTarget:self selector:@selector(saveAddressBook:) object:(__bridge id)addressBook];      
[saveThread start]; 

и метод saveThread является:

- (void)saveAddressBook:(id)ab 
{ 
    bool didSave; 
    CFErrorRef error = NULL; 

    didSave = ABAddressBookSave((__bridge ABAddressBookRef)ab, &error); 
    if (didSave) { NSLog(@"Saved.");} 

} 

ABAddressBookSave линия падает приложение:

Тема 6: EXC_BAD_ACCESS (код = 1, адрес = 0x65504289)

Я знаю ошибка из-за сбоя памяти, но я ничего не могу отпустить, так как я использую ARC.

ответ

Смежные вопросы