0

我正在后台线程中阅读通讯簿,并收到一些带有以下堆栈跟踪的崩溃报告。

    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

我无法复制,所以它只会偶尔发生。此代码只是试图查看 ABPerson 是否有图像。什么可能导致这种情况?

谢谢你。

4

1 回答 1

5

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

重要您必须确保仅一个线程使用 ABAddressBookRef 的实例。

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

于 2012-10-22T17:50:41.010 回答