C# 外部更改通讯簿

C# 外部更改通讯簿,c#,ios,xamarin,C#,Ios,Xamarin,救命啊。我试图跟踪通讯录中的变化。但是方法 NSError err; ABAddressBook iOSAddressBook = ABAddressBook.Create(out err); iOSAddressBook.ExternalChange += (object sender, ExternalChangeEventArgs e) => { Console.WriteLine("qorkkkk"); }; 不起作用。什么不起作用?你有例外吗?没

救命啊。我试图跟踪通讯录中的变化。但是方法

NSError err;
ABAddressBook iOSAddressBook = ABAddressBook.Create(out err);
iOSAddressBook.ExternalChange += (object sender, ExternalChangeEventArgs e) =>
    {
        Console.WriteLine("qorkkkk");
    };

不起作用。

什么不起作用?你有例外吗?没有例外。我启动应用程序,单击主页按钮。在通讯录中,有些东西正在改变。返回应用程序,控制台为空。我有可用的类:ABAddressBookRef、ABAddressBookCreateWithOptions。可能需要导入库?添加,这两个框架如果没有ADD.使用基础;使用通讯录;使用AddressBookUI;此库没有检测本机通讯簿中更改的方法
/*First, Make change in viewDidLoad Method from where you want to change addressbook Record.*/
- (void)viewDidLoad {
  ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(nil, nil);
    ABAddressBookRegisterExternalChangeCallback(addressBook, addressBookChanged, (__bridge void *)(self));
}
//Then,
    /*------- method will call when contact updated  ------*/
void addressBookChanged(ABAddressBookRef addressBook, CFDictionaryRef info, void *context)
{
    @try {
        [YourVewControllerObj updateRecord];
//        YourViewController *viewController = (__bridge YourViewController*)context;
//        [viewController updateRecord];
    }
    @catch (NSException *exception) {
        NSLog(@"%@",exception.description);
    }
}

    /*------- Method call if make any change in conatct ------*/
+(void)updateRecord
{
  NSMutableDictionary *dictPerson= [NSMutableDictionary dictionary];
    CFErrorRef error = NULL;
    ABAddressBookRef addressBook =ABAddressBookCreateWithOptions(NULL, &error) ;
    ABRecordID record = ABRecordGetRecordID(ABRecordRef);
    ABRecordRef contactPerson = ABAddressBookGetPersonWithRecordID(addressBook, record);
/*---Here you get your updated Record Refence----*/
//Do your other stuff here
}