ipad / iphone app中的内存管理

时间:2010-04-12 13:58:04

标签: iphone debugging memory-management memory-leaks ipad

我有一个应用程序,在我看来,内存没有被释放,但我不知道如何分析这个问题。

xcode中的'Analyze'显示没有问题,'Instruments'没有显示任何内存泄漏。

据我所知,不建议查看保留计数。

如何找到有问题的物品?我已经在对象的'dealloc'方法中添加了打印输出,并且没有看到它被调用。

更新

我现在正在接受

  

objc [69139]:FREED(id):发送给释放对象的消息retainCount = 0x5422420

有没有一种简单的方法可以找出这是哪个对象? “分析”不报告任何无效版本。

1 个答案:

答案 0 :(得分:0)

我建议您搜索代码并查找每个init / alloc语句。然后,验证每个对象是否正确释放。如果你有一个问题,你可能会有更多。最初看起来似乎是一个高成本,但它可能会在固定的错误中得到回报。

值得注意的一件大事是来自你也正在设置的笔尖的引用。那些没有被释放的人很容易。我发现最简单的方法是确保没有内存错误来声明它们:

@property (nonatomic, retain) IBOutlet UILabel *message;

然后确保dealloc类似于:

- (void)dealloc {
    self.message = 0;
    [super dealloc];
}

我做了这两件事,我的所有记忆错误都被清除了。