2
如何以编程方式向使用AddressBook框架的iPhone联系人添加新组?以编程方式在联系人中创建组
如何以编程方式向使用AddressBook框架的iPhone联系人添加新组?以编程方式在联系人中创建组
首先来看看,看看它是否存在,如果没有,创建它:
bool foundIt = NO;
// Protective - did we just not find it, or lose it?
CFArrayRef groups = ABAddressBookCopyArrayOfAllGroups(addrBook);
CFIndex numGroups = CFArrayGetCount(groups);
for(CFIndex idx=0; idx<numGroups; ++idx) {
ABRecordRef groupItem = CFArrayGetValueAtIndex(groups, idx);
CFStringRef name = (CFStringRef)ABRecordCopyValue(groupItem, kABGroupNameProperty);
//NSLog(@"Look at group named %@", name);
bool isMatch = [newName isEqualToString:(NSString *)name];
CFRelease(name);
if(isMatch) {
// NSLog(@"FOUND THE GROUP ALREADY!");
groupNum = [NSNumber numberWithInt:ABRecordGetRecordID(groupItem)];
[self setObject:groupNum forKey:kGroupID];
foundIt = YES;
break;
}
}
CFRelease(groups);
if(!foundIt) {
// lets create one
ABRecordRef groupItem = ABGroupCreate();
ABRecordSetValue(groupItem, kABGroupNameProperty, (CFStringRef *)newName, &error);
if(!error) {
ABAddressBookAddRecord (addrBook, groupItem, &error); // bool ret =
ABAddressBookSave(addrBook, &error);
groupNum = [NSNumber numberWithInt:ABRecordGetRecordID(groupItem)];
//NSLog(@"FIRST groupNumber: %@", groupNum);
[self setObject:groupNum forKey:kGroupID];
}
CFRelease(groupItem);
}
堆栈溢出是针对特定的编程问题,而不是一个地方,有人会写程序给你。 – Dustin 2012-07-23 12:57:14
这有点苛刻没有?它的几行代码不是程序。 – 2012-07-23 13:00:50
感谢大卫你的代码工作完全actaully我是一个新的commer在ios编程这就是为什么我问这种类型的问题。 – Mary 2012-07-24 12:00:16