2012-10-23 71 views
0

我看到在模擬器和設備本殭屍問題:殭屍錯誤瓦特ABAddressBookCreate

  • [不是一個類型類]:消息發送到釋放的實例0x5bf9450

產生能解決此問題的代碼不再簡單。

+ (void) testAllocateAndDeallocteAddressBook 
{ 
    ABAddressBookRef addressBookRef = ABAddressBookCreate(); 

    NSAssert(addressBookRef != NULL, @"ABAddressBookCreate() returned NULL"); 

    CFRelease(addressBookRef); 

    return; 
} 

我不明白的是爲什麼這個CFRelease()會導致這個錯誤。我讀過的關於這個URL的所有Apple文檔都指出應該調用CFRelease()來釋放ref。

+0

據我所知ABAddressBookCreate已被棄用。看這裏。 http://developer.apple.com/library/ios/#documentation/AddressBook/Reference/ABAddressBookRef_iPhoneOS/Reference/reference.html這可能會導致問題。 – Bergasms

回答

0

也許這是這裏的問題。這是來自蘋果頁面的討論。

只有在使用ABAddressBookSave保存地址簿後,對返回的地址簿所做的更改纔會反映在地址簿數據庫 中。

在iOS 6.0及更高版本,如果主叫方沒有訪問地址簿數據庫:

對於反對的iOS 6.0的關聯應用,後來,該函數返回NULL。 對於與以前版本的iOS鏈接的應用程序,此函數返回一個 空的只讀數據庫。