一千萬個為什麽

搜索

ipad/iphone app中的內存管理

我有一個應用程序,在我看來,內存沒有被釋放,但我不知道如何分析這個問題。

xcode中的'Analyze'顯示沒有問題,'Instruments'沒有顯示任何內存泄漏。

據我所見,不建議查看保留計數。

如何找到有問題的物體?我已經在對象的'dealloc'方法中添加了打印輸出,並且沒有看到它被調用。

更新</強>

我現在正在那樣做

objc [69139]:FREED(id):發送給釋放對象的消息retainCount = 0x5422420

有沒有一種簡單的方法可以找出這是哪個對象? “分析”不報告任何無效版本。

最佳答案

我建議搜索你的代碼並找到每個init/alloc語句。然後,驗證每個對象是否正確釋放它。如果你有一個問題,你可能會有更多。最初看起來似乎是一個高成本,但它可能會在固定的錯誤中得到回報。

值得註意的是來自筆尖的參考,你也正在設置。那些沒有發布的很容易。我找到了最簡單的方法來確保沒有內存錯誤來聲明它們:

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

然後確保dealloc是這樣的:

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

我做了這兩件事,我的所有記憶錯誤都被清除了。

轉載註明原文: ipad/iphone app中的內存管理