【发布时间】:2013-01-21 18:51:49
【问题描述】:
由于我通常使用 ARC,所以我是一个具有属性以及如何手动释放东西的菜鸟,但在这种情况下我不是,所以我需要一些帮助来解决下面的泄漏问题。现在既然它是一个属性,我是否只是在最后贴上自动释放。我不确定! :)
无论如何,如果有人能告诉我如何正确摆脱这种泄漏,那就太好了!
- (id)init
{
self = [super init];
if (self)
{
self.purchasableObjects = [[NSMutableArray alloc] init];
self.storeObserver = [[ZTStoreObserver alloc] init];
[[SKPaymentQueue defaultQueue] addTransactionObserver:self.storeObserver];
}
return self;
}
【问题讨论】:
-
你使用过弱属性吗?
-
哪个对象在泄漏?
-
storeObserver 正在泄漏。另外,我没有使用 ARC,如果问题不清楚,抱歉。
-
顺便说一下,您不应该在
init方法中使用self.purchasableObjects之类的访问器方法。请参阅高级内存管理编程指南中的Don’t Use Accessor Methods in Initializer Methods and dealloc。您可能应该使用_purchasableObject = [[NSMutableArray alloc] init]等。
标签: ios properties memory-leaks