不起作用,将号码添加到ios 11中的现有联系人



我想在现有联系人中添加电话号码。此代码在 iOS8 中完美运行,但在 iOS11 中无效。没有收到任何错误,但是当ABNewPersonViewController打开时,我看不到新的电话号码。

-(void)addToExstingContact{
    ABPeoplePickerNavigationController *personPicker = [[ABPeoplePickerNavigationController alloc] init];
    personPicker.peoplePickerDelegate = self;
    [self presentViewController:personPicker animated:true completion:nil];
}
-(void)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker didSelectPerson:(ABRecordRef)person{
    [peoplePicker dismissViewControllerAnimated:true completion:^{
        ABMultiValueRef phoneNumbers = ABRecordCopyValue(person, kABPersonPhoneProperty);
        ABMutableMultiValueRef phoneNumberMultiValue = ABMultiValueCreateMutableCopy(phoneNumbers);
        ABMultiValueAddValueAndLabel(phoneNumberMultiValue, (__bridge CFTypeRef)(newPhoneNumber), kABPersonPhoneMainLabel, NULL);
        ABRecordSetValue(person, kABPersonPhoneProperty, phoneNumberMultiValue, nil);
        CFRelease(phoneNumberMultiValue);
        ABNewPersonViewController *view = [[ABNewPersonViewController alloc] init];
        view.newPersonViewDelegate = self;
        view.displayedPerson = person;
        UINavigationController *newNavigationController = [[UINavigationController alloc] initWithRootViewController:view];
        [self presentViewController:newNavigationController animated:true completion:nil];
    }];
}
- (void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker{
    [peoplePicker dismissViewControllerAnimated:true completion:nil];
}
引用

文档:

地址簿 UI 框架在 iOS 9 中已弃用。使用接口 改为在联系人 UI 框架中定义。要了解更多信息,请参阅 联系人用户界面。

也许您应该将此代码重写到联系人框架中以使其在 11 上运行?

这方面的一个例子是:https://www.appsfoundation.com/post/create-edit-contacts-with-ios-9-contacts-ui-framework

最新更新