【发布时间】:2012-02-20 12:30:51
【问题描述】:
我的地址簿和内存确实有问题。我希望它返回可以保存联系人的记录(现有记录或新记录)。根据构建和分析工具,这个功能有很多问题。我已经阅读了文档并重新编写了很多次,但我似乎无法正确。
编写此方法的正确方法是什么? / 我做错了什么?
//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;
}
【问题讨论】:
-
不打算回答,因为我不太了解 AB API,但至少您需要自动释放响应,因为它是由包含“create”的调用返回的
标签: iphone objective-c ios memory-leaks addressbook