地址簿背景thead:奇怪的间歇性崩溃

Loc*_*ike 0 abaddressbook ios

我正在后台线程中读地址簿,我正在使用以下堆栈跟踪获得一些崩溃报告.

    0    libsystem_kernel.dylib 
__pthread_kill + 8
1    libsystem_c.dylib  
abort + 94
2    AppSupport 
abortAfterPassingIntegrityCheck + 38
3    AppSupport 
runIntegrityCheckAndAbort + 526
4    AppSupport 
checkResultWithStatement + 120
5    AppSupport 
CPSqliteStatementReset + 60
6    AddressBook    
_imageStoreHasFullSizeImageForRecord + 102
7    AddressBook    
ABCImageStoreHasImagesForRecordWithFormat + 48
8    AddressBook    
ABCImageStoreHasImagesForRecord + 14
9    AddressBook    
ABCPersonHasImageDataEntries + 186
10   AddressBook    
ABCPersonHasImageData + 10
11   AddressBook    
ABPersonHasImageData + 8
12   Brewster ?  AddressBookHandler.m line 501
-[AddressBookHandler needToImportPhotoContacts] + 50
Run Code Online (Sandbox Code Playgroud)

我无法复制,所以有时只会发生.此代码只是试图查看ABPerson是否有图像.什么可能导致这个?

谢谢.

小智 5

我看到了同样的问题.这似乎是因为ABAddressBookRef只能由单个线程使用.每ABAddressBookCreate文档:

要点:必须确保只有一个线程使用ABAddressBookRef的实例.

还有另一篇文章也引用了这个问题:http://blog.byadrian.net/2012/05/05/ios-addressbook-framework-and-gcd/