Ошибка сигнала «0» обычно означает, что приложение аварийно завершилось из-за нехватки памяти.
Кажется, что ваша проблема заключается в следующем: вы создаете подпредставления ячейки и добавляете их в свою ячейку каждый раз, когда вызывается метод cellForRowAtIndexPath
, поэтому все ваши выделенные элементы пользовательского интерфейса висят в памяти и приложение в конечном итоге выходит из него.
Чтобы решить вашу проблему, вы должны создать подпредставления ячейки только один раз - при создании и позже просто настройте их содержимое:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [travelSummeryPhotosTable dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]autorelease];
UIImageView *photoTag = [[UIImageView alloc] initWithFrame:CGRectMake(5.0, 5.0, 85.0, 85.0)];
photoTag.tag = 10;
[cell.contentView addSubview:photoTag];
[photoTag release];
UILabel *labelImageCaption = [[UILabel alloc] initWithFrame:CGRectMake(110.0, 15.0, 190.0, 50.0)];
labelImageCaption.tag = 11;
labelImageCaption.textAlignment = UITextAlignmentLeft;
[cell.contentView addSubview:labelImageCaption];
[labelImageCaption release];
}
//Photo ImageView
NSString *rowPath =[[imagePathsDictionary valueForKey:[summaryTableViewDataArray objectAtIndex:indexPath.section]] objectAtIndex:indexPath.row];
UIImageView* photoTag = (UIImageView*)[cell.contentView viewWithTag:10];
photoTag.image = [UIImage imageWithContentsOfFile:rowPath];
// Image Caption
UILabel *labelImageCaption = (UILabel*)[cell.contentView viewWithTag:11];
NSString *imageCaptionText =[ [imageCaptionsDictionary valueForKey:[summaryTableViewDataArray objectAtIndex:indexPath.section]] objectAtIndex:indexPath.row];
labelImageCaption.text = imageCaptionText;
return cell;
}