iOS通讯录数据变化监听

监听手机通讯录的变化减少每次进入程序重新获取通讯录信息。主要使用了AddressBookCNContact来完成
有两种实现方式:
1.使用框架AddressBook

//监听通讯录变化
void addressBookChanged(ABAddressBookRef addressBook, CFDictionaryRef info, void *context)
{
    NSLog(@"AddressBook Changed");
//    VC1 *myVC = (__bridge VC1 *)context;
//    [myVC getPersonOutOfAddressBook];
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    
    ABAddressBookRef addresBook = ABAddressBookCreateWithOptions(NULL, NULL);
    ABAddressBookRegisterExternalChangeCallback(addresBook, addressBookChanged, (__bridge void *)(self.viewcontrller));
}
    ```
调用此方法需要放在-application:didFinishLaunchingWithOptions:
2.使用CNContact框架,
**Obj-C code:**

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(addressBookDidChange:) name:CNContactStoreDidChangeNotification object:nil];

然后

-(void)addressBookDidChange:(NSNotification*)notification{

}

**Swift code:**

NSNotificationCenter.defaultCenter().addObserver( self, selector: "addressBookDidChange:", name: CNContactStoreDidChangeNotification, object: nil)

然后

@objc func addressBookDidChange(notification: NSNotification){
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,262评论 4 61
  • T恤衫不管何时何地都是所有年轻男女追捧的时尚单品,看似百搭的T恤衫,其实也有不同的款式,男士T恤搭配什么裤子?t恤...
    小天小哥阅读 2,736评论 0 0
  • 《人间失格》是日本反秩序派代表作家太宰治的绝笔之作,书中塑造了一个悲剧性人物——叶藏,主人公性格抑郁敏感,天生害怕...
    字爵阅读 355评论 1 0
  • 获取data data参见这里 RMSE & MSE的对比 例子:我们有一个三个卧室的房子要租出去,判断租金应该定...
    西瓜三茶阅读 695评论 0 1
  • 【读经】 耶12 【金句】 他们若殷勤学习我百姓的道,指着我的名起誓说:‘我指着永生的耶和华起誓’,正如他们从前教...
    chanor阅读 244评论 0 0