如何在ABAddressBook上编辑我的联系人姓名和姓氏

时间:2016-02-25 03:32:35

标签: ios objective-c 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);
}

但是,我需要编辑联系人的firstName和lastName。

如何制作它。

1 个答案:

答案 0 :(得分:0)

这段代码没有在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对象(人物对象)并修改它...然后保存地址簿....这将保存你联系人的编辑信息。

如果您有任何其他方法可以帮助解决此问题,请与我们联系