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,245評論 4 61
  • T恤衫不管何時何地都是所有年輕男女追捧的時尚單品,看似百搭的T恤衫,其實也有不同的款式,男士T恤搭配什么褲子?t恤...
    小天小哥閱讀 2,731評論 0 0
  • 《人間失格》是日本反秩序派代表作家太宰治的絕筆之作,書中塑造了一個悲劇性人物——葉藏,主人公性格抑郁敏感,天生害怕...
    字爵閱讀 354評論 1 0
  • 獲取data data參見這里 RMSE & MSE的對比 例子:我們有一個三個臥室的房子要租出去,判斷租金應該定...
    西瓜三茶閱讀 682評論 0 1
  • 【讀經】 耶12 【金句】 他們若殷勤學習我百姓的道,指著我的名起誓說:‘我指著永生的耶和華起誓’,正如他們從前教...
    chanor閱讀 242評論 0 0