Это хорошая практика программирования Objective C всегда проверять результат функции, которая возвращает значение BOOL (например, ABGroupAddMember
или ABAddressBookSave
или NSArray
или NSDictionary
writeToFile
методы) до проверка на наличие ошибки, возвращаемой в качестве одного из параметров.
Вместо этого попробуйте что-то подобное:
ABAddressBookRef ab = ABAddressBookCreate();
ABRecordRef abGroupRef = ABAddressBookGetGroupWithRecordID(ab, 1);
ABRecordRef pRef = ABAddressBookGetPersonWithRecordID(ab, 1);
CFErrorRef anError = NULL;
NSError * anErrorAsObjectiveCObject; // for use with toll free bridged object magic
if(ABGroupAddMember(abGroupRef, pRef, &anError))
{
if(ABAddressBookSave(ab, &anError))
{
NSLog(@"successfully saved");
} else {
anErrorAsObjectiveCObject = (__bridge_transfer NSError *) anError;
NSLog( @"error in ABAddressBookSave - %@ %@", [anErrorAsObjectiveCObject domain], [anErrorAsObjectiveCObject localizedDescription] );
}
} else {
anErrorAsObjectiveCObject = (__bridge_transfer NSError *) anError;
NSLog( @"error in ABGroupAddMember - %@ %@", [anErrorAsObjectiveCObject domain], [anErrorAsObjectiveCObject localizedDescription] );
}