首页 > 代码库 > iOS 通讯录编程,监听系统通讯录变更

iOS 通讯录编程,监听系统通讯录变更

监听通讯录变更

客户端代码需要这么实现:

/*
 移除注册函数
 */
-(void)dealloc{
        ABAddressBookUnregisterExternalChangeCallback(_addressBook, ContactsChangeCallback, nil);
}
/*
 注册回调函数
 */
- (id)init {
    self = [super init];
    [self addressBookHandle];
    ABAddressBookRegisterExternalChangeCallback(_addressBook, ContactsChangeCallback, nil);

    return self;
}
/*
 回调函数,实现自己的逻辑。
 */
void ContactsChangeCallback (ABAddressBookRef addressBook,
                                                       CFDictionaryRef info,
                                                       void *context){

    NSLog(@"ContactsChangeCallback");
}

_addressBook是通讯录句柄

监听规则:

当App活跃(前台+后台包活期间)的时候,当通讯录修改的时候,会收到通知

当App不活跃的时候(挂起的时候),App收不到通知;而是,当App到前台的时候收到延迟的通知。

iOS 通讯录编程,监听系统通讯录变更