【发布时间】:2014-04-20 04:36:16
【问题描述】:
我觉得我在这里是一个骨头头......
静态分析器在-(void)doSomethingInteresting方法中报错:
存储到 myAddressBook 中的对象的潜在泄漏
嗯,当然,这是有道理的;我正在调用 create 函数而没有匹配的 release。但是,我不认为我想在-doSomethingInteresting 的末尾释放myAddressBook,因为我希望它在AwesomeObject 实例的生命周期内一直存在。
AwesomeObject.h
@interface AwesomeObject : NSObject
@property (assign, nonatomic) ABAddressBookRef addressBook;
@end
AwesomeObject.m
@implementation AwesomeObject
- (void)doSomethingInteresting
{
CFErrorRef error = NULL;
ABAddressBookRef myAddressBook = ABAddressBookCreateWithOptions(NULL, &error);
[self setAddressBook:myAddressBook];
}
@end
编辑:附上屏幕截图
【问题讨论】:
-
属性应该保留,然后你应该释放......这样对象就是所有者而不是本地范围。
标签: objective-c automatic-ref-counting core-foundation