我有一個UITableView其中每個單元格是一個圖像。一次只能看到一個單元格。 圖像按需加載。用戶滾動到單元格並加載其圖像。UITableView與圖像不釋放資源
氏是我的cellForRowAtIndexPath方法:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *MyIdentifier = @"MyIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
if (cell == nil) {
// this is being compiled for OS 2.0, this is why I am using initWithFrame… it is working fine on 3.0 iPhone.
cell = [[[UITableViewCell alloc] initWithFrame:CGRectMake(0, 0, 480, 320) reuseIdentifier:MyIdentifier] autorelease];
}
UIImage *imagemX;
UIImageView *myView;
imagemX = [[[UIImage alloc]initWithContentsOfFile:[[NSBundle mainBundle]
pathForResource:[NSString stringWithFormat: @"img%d", (indexPath.row+1)] ofType:@"jpg"]] autorelease];
myView = [[[UIImageView alloc]initWithImage:imagemX] autorelease];
[cell addSubview: myView];
return cell;
}
這段代碼的問題是,內存使用總是隨着我滾動經過表,即使我回到前面顯示的圖像。滾動一下後,應用程序崩潰,可能由於過度使用內存而跳板。
我錯過了什麼嗎?如何強制圖像在不可見時釋放其資源?
爲什麼這個社區wiki? – 2009-10-12 17:05:39