У меня проблемы с адресной книгой и памятью. Я хочу, чтобы он возвращал запись (существующую или новую), в которую я могу сохранить контакт. Существует много неправильных с этой функцией в соответствии с инструментом построения и анализа. Я прочитал документацию и переписал ее несколько раз, но, похоже, не могу понять, что это правильно.
Как правильно написать этот метод? / Что я делаю не так?
//Searches Groups by name for matches and returns the attached record
- (ABRecordRef)getGroup
{
ABRecordRef response;
NSArray *groups = (NSArray*)ABAddressBookCopyArrayOfAllGroups(addressBook);
for (id group in groups)
{
NSString *currentGroup = (NSString*)ABRecordCopyValue(group, kABGroupNameProperty);
if ([currentGroup isEqualToString:GroupName])
{
response = group;
CFRelease(currentGroup); //??
break;
}
CFRelease(currentGroup); //?
}
[groups release];
if (response == NULL)
{
response = ABGroupCreate();
ABRecordSetValue(response, kABGroupNameProperty, GroupName, &error);
ABAddressBookAddRecord(addressBook, response, &error);
ABAddressBookSave(addressBook, &error);
}
return response;
}