如何从ABAddressBook编辑联系人的名字和姓氏



如何从ABAddressBook编辑联系人的名字和姓氏。

我使用此代码查找了一些带有姓名的联系人。

+(CFArrayRef)searchContactOnDevice_fromFullName:(NSString *)FullName{
    NSString *searchName = [NSString stringWithFormat:@"%@", FullName];
    ABAddressBookRef addressbook = ABAddressBookCreate();
    CFStringRef nameRef = (__bridge CFStringRef) searchName;
    CFArrayRef  allSearchRecords = ABAddressBookCopyPeopleWithName(addressbook, nameRef);
    return allSearchRecords;
}

如果我想删除一些联系人,我可以使用以下代码:

+(void)removeContactWithRecordsList:(CFArrayRef) selectedRecords_
{
    ABAddressBookRef addressbook = ABAddressBookCreate();
    if (selectedRecords_ != NULL)
    {
        int count = CFArrayGetCount(selectedRecords_);
        for (int i = 0; i < count; ++i)
        {
            ABRecordRef contact = CFArrayGetValueAtIndex(selectedRecords_, i);
            ABAddressBookRemoveRecord(addressbook, contact, nil);
        }
    }
    ABAddressBookSave(addressbook, nil);
    CFRelease(addressbook);
}

但是,我需要编辑联系人的名字和姓氏。

我怎么能做到。

此代码未在 Xcode 上测试。这是一个整体的想法,应该对我有用,因为我很久以前就这样做了......试试这个...

//Code to edit contact programmatically...     
 ABAddressBookRef addressbook = ABAddressBookCreate();
    if (selectedRecordsCount_ != NULL)
    {           
       ABRecordRef contact = CFArrayGetValueAtIndex(selectedRecordsCount_, index);
       contact.firstName = @"My new first name";
       contact.lastName= @"My New last name":
        ABAddressBookSave(addressbook, nil);
    }
    CFRelease(addressbook);

这里的整个想法是获取一个 ABRecordRef 对象(人对象)并修改相同的......然后保存地址簿....这将保存您联系人的编辑信息。

如果您有任何其他帮助,请告诉我

最新更新