2009-11-19 100 views
2

我正在一個應用程序中uitableview的uitableviewcells自定義其中包含textfied(包含managedobject /核心數據),標籤((包含managedobject),按鈕所有被定製。我創建的UITableView動態使用SQLite。Tableviecells沒有得到釋放.....內存管理問題

My tablview UI http://grab.by/FiJ

同樣的UITableView視圖包含多於15個細胞。將細胞完美顯示。 但我面臨的問題與由細胞所佔據的存儲器。

如果我選中next/prev,則使用核心數據重新加載新單元(也是新數據)的同一個表視圖。但在這種情況下,先前的單元格(單元的內存)應該被釋放。但是在瀏覽其他視圖的同時,記憶正在不斷增加和增加(使用上一個/下一個按鈕)。

奇怪的是, 當我滾動tablview連續上下單元格創建和創建,並逐漸增加內存。

謝謝。

+3

你可以發佈你的-cellForRowAtIndexPath方法嗎?很難在沒有看到您的代碼的情況下指出問題 – Vladimir 2009-11-19 08:37:52

+0

您可能沒有使用正確的重用方法。 – FelixLam 2009-11-19 10:49:36

回答

1

我認爲

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

工作不正確。

檢查你的細胞具有同一小區標識符(您可以在IB指定它),你在代碼中使用:

static NSString *cellIdentifier = @"myIdentifier"; 
MyCell* cell = (MyCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier]; 
     if (cell == nil) { 
      cell = [[[MyCell alloc] init] autorelease]; 
     } 
cell.text = @"Yahoo!"; 
... 

我認爲這是你的問題。