Как программно добавить новую группу в контакт iPhone с помощью структуры AddressBook?
Программно создать группу в контактах
comment
Переполнение стека предназначено для конкретных вопросов по программированию, а не для того, чтобы кто-то написал для вас программу.
- person Dustin   schedule 23.07.2012
comment
Это немного резко, нет? Это несколько строк кода, а не программа.
- person David H   schedule 23.07.2012
comment
спасибо, Дэвид, ваш код работает отлично, на самом деле я новичок в программировании ios, поэтому я задал этот тип вопросов.
- person Mary   schedule 24.07.2012
comment
Здравствуйте, Мэри, вы дадите мне свой код, который мне нужен для моего приложения.
- person Manoj   schedule 17.06.2014
Ответы (1)
Сначала посмотрите и посмотрите, существует ли он, а если нет, создайте его:
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);
}
person
David H
schedule
23.07.2012