【问题标题】:How can i delete multiple address book contacts in iOS programmatically? [duplicate]如何以编程方式删除 iOS 中的多个通讯录联系人? [复制]
【发布时间】:2015-02-25 05:20:59
【问题描述】:

您好,我需要在 tableview 中显示所有通讯录联系人。如果用户想要选择多个联系人,请删除这些选定的联系人。为此,我没有找到任何解决方案,请帮助我。

【问题讨论】:

    标签: ios iphone contacts addressbook


    【解决方案1】:

    你可以试试这个:
    你需要#import <AddressBookUI/AddressBookUI.h>:

    -(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);
    }
    

    编辑:
    示例:就我而言,我想删除所有名称为“Sample”的联系人

    NSString *searchName = @"Sample";
    ABAddressBookRef addressbook = ABAddressBookCreate();
    CFStringRef nameRef = (__bridge CFStringRef) searchName;
    CFArrayRef  allSearchRecords = ABAddressBookCopyPeopleWithName(addressbook, nameRef);
    [self removeContactWithRecordsList:allSearchRecords];
    

    【讨论】:

    • 我是 iOS 新手,能否请您给我简单的示例代码。
    • 在选择行中我创建了复选标记并且没有,当完成多项选择时,它将在虚拟数组中保存“是”。 [celselectedd replaceObjectAtIndex:indexPath.row withObject:@"YES"];在删除操作中,我将使用虚拟数组索引删除数据源和数组,但是当我选择索引中的行时出现问题
    • 所以..你可以得到你选择的所有联系人记录吗?对?您只需使用 [self removeContactWithRecordsList:yourSaveRecords]; 删除这些
    • 在选择行中我创建了复选标记并且没有,当完成多项选择时,它将在虚拟数组中保存“是”。 [celselectedd replaceObjectAtIndex:indexPath.row withObject:@"YES"];在删除操作中,我将使用虚拟数组索引删除数据源和数组,但是当我选择索引中的行时,例如 2,5,8(Alternate),它会正确删除。当我选择 2,3 或 5,6 它只删除一个
    • 我找不到你,对不起
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多