Oli*_*ver 2 iphone objective-c addressbook
我有一个iPhone应用程序,它使用AddressBook.framework并使用Core Data来存储这些联系人.为了确保在更新地址簿时更新我自己的数据库(无论是通过MobileMe还是在我自己的应用程序中进行编辑),我正在订阅有关通讯簿何时更新的通知.我在启动时调用它:
ABAddressBookRef book = ABAddressBookCreate();
ABAddressBookRegisterExternalChangeCallback(book, addressBookChanged, self);
Run Code Online (Sandbox Code Playgroud)
哪个(据说)在任何编辑时调用它.我有一个允许编辑的ABPersonViewController,而且似乎永远不会调用addressBookChanged.
void addressBookChanged(ABAddressBookRef reference, CFDictionaryRef dictionary, void *context) {
// The contacts controller we need to call
ContactsController *contacts = (ContactsController *)context;
// Sync with the Address Book
[contacts synchronizeWithAddressBook:reference];
}
Run Code Online (Sandbox Code Playgroud)
它有什么理由不被称为?
事实证明它没有被调用的原因是一个简单的错误.我做了:
CFRelease(book);
Run Code Online (Sandbox Code Playgroud)
设置通知后.我删除了它,它现在被调用.
| 归档时间: |
|
| 查看次数: |
2342 次 |
| 最近记录: |