我正在通过我的应用程序在iphone组中添加联系人。还有其他逻辑吗?
任何人都可以告诉我如何检查群体的存在???
我正在使用以下代码来检查组的存在,但可能是我的应用程序在iphone中崩溃的b'coz循环。
// ab = AddressBook对象
CFArrayRef a = ABAddressBookCopyArrayOfAllGroups(ab);
for (CFIndex i = CFArrayGetCount(a)-1; i >= 0; i--)
{
ABRecordRef g = (ABRecordRef) CFArrayGetValueAtIndex(a, i);
CFStringRef s = (CFStringRef) ABRecordCopyValue(g, kABGroupNameProperty);
CFComparisonResult r = CFStringCompare((CFStringRef)name, s, 0);
CFRelease(s);
if (r == kCFCompareEqualTo)
{
group = CFRetain(g);
break;
}
}
CFRelease(a);
CFErrorRef err = nil;
if (!group)
{
group = ABGroupCreate();
ABRecordSetValue(group, kABGroupNameProperty, name, &err);
if (!err)
{
ABAddressBookAddRecord(ab, group, &err);
}
if (!err)
{
ABAddressBookSave(ab, &err);
}
}
if (err)
{
CFRelease(err);
}
答案 0 :(得分:1)
来自Apple文档:
您可以使用函数ABAddressBookGetGroupWithRecordID
按记录标识符查找特定组。您还可以使用ABAddressBookCopyArrayOfAllGroups
检索通讯录中所有组的数组,并使用函数ABAddressBookGetGroupCount
计算通讯录中有多少组。
您可以以编程方式修改组的成员。要将人员添加到组,请使用函数ABGroupAddMember
;要从群组中删除某人,请使用ABGroupRemoveMember
功能。在将人员记录添加到组之前,它必须已在通讯簿数据库中。如果需要同时向组和数据库添加新人员记录,则必须先将其添加到通讯簿数据库,保存数据库,然后将人员记录添加到组中。**
了解更多plz read apple文档。