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