Я прохожу учебник по просмотрам таблиц для iPhone. Ниже приведен метод источника данных для заполнения таблицы.
- (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath{
static NSString* SimpleTableIdentifier = @"SimpleTableIdentifier";
UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:SimpleTableIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:SimpleTableIdentifier] autorelease];
}
NSUInteger row = [indexPath row];
cell.textLabel.text = [listData objectAtIndex:row];
UIImage* image = [UIImage imageNamed:@"face.png"];
cell.imageView.image = image;
//[image release];
return cell;
}
Я заметил, что автор не выпустил изображение после установки его в качестве значка для ячейки таблицы. Исходный код, определяющий UITableCell.imageView.image
, фактически показывает, что это сохраняемое свойство. Если я не опубликую свою собственную копию изображения, то в конце метода количество сохранений будет равно 2. Поэтому я решил выпустить его, чтобы освободить память. Тем не менее, это приводит к сбою эмулятора iPhone, когда я слегка удаляю стол с экрана. Почему?