使用ABAddressBookRegisterExternalChangeCallback注册到Addressbook更改

Gal*_*Gal 13 iphone notifications objective-c abaddressbook ios

我真的需要一些帮助.

我做的与所有示例完全相同,但没有得到任何通知.

这是我的代码:

 #import <AddressBook/ABAddressBook.h>
 #import <AddressBook/AddressBook.h>
Run Code Online (Sandbox Code Playgroud)

注册通知:

ABAddressBookRef book = ABAddressBookCreate();
ABAddressBookRegisterExternalChangeCallback(book, addressBookChanged, self);
Run Code Online (Sandbox Code Playgroud)

回调的定义:

void addressBookChanged(ABAddressBookRef reference, 
                        CFDictionaryRef dictionary, 
                        void *context) 
{

   ViewController *viewController = (ViewController*)context;
   [viewController addressBookChanged];    
}
Run Code Online (Sandbox Code Playgroud)

另一种方法:

-(void) addressBookChanged
{
   NSLog(@"%@", @"addressBookChanged");
}
Run Code Online (Sandbox Code Playgroud)
  • 我正在运行该应用程序
  • 切换到联系人应用
  • 添加新联系人
  • 没有任何事情......没有记录,没有......

我在这做错了什么?

  • 有没有'#import'丢失?
  • 它应该在设备/模拟器上工作吗?
  • 是否有任何特定的方式来声明回调?静态也许?

任何帮助将不胜感激.谢谢.

Gal*_*Gal 8

好的,我现在知道了答案......

正在调用回调,但只有当我恢复我的应用程序时.