Tableview загрузка более 50 изображений Предупреждение о получении памяти
Это мои данные клетки
for (int s=0; s<[arrayForPhotosData1 count]; s++) {
PhotoCell *cell=[[PhotoCell alloc] init];
cell.imgPhoto.layer.shadowColor = [UIColor lightGrayColor].CGColor;
cell.imgPhoto.layer.shadowOffset = CGSizeMake(0, 2);
cell.imgPhoto.layer.shadowOpacity = 1;
cell.imgPhoto.layer.shadowRadius = 1.0;
cell.imgPhoto.clipsToBounds = NO;
if([[arrayForPhotosData1 objectAtIndex:s] valueForKey:@"resolution_280_280"]!=NULL)
{
[cell.imgPhoto loadImage:[[arrayForPhotosData1 objectAtIndex:s] valueForKey:@"resolution_280_280"]];
}
[cell.ImgProfile loadImage:[[arrayForPhotosData1 objectAtIndex:s] valueForKey:@"profile_picture"]];
[cell.lblUserName setText:[[arrayForPhotosData1 objectAtIndex:s] valueForKey:@"caption"]];
[cell.lblForTime setText:[[arrayForPhotosData1 objectAtIndex:s] valueForKey:@"created_time"]];
[cell.lblFullName setText:[[arrayForPhotosData1 objectAtIndex:s] valueForKey:@"Name" ]];
[cell.btnForLike addTarget:self
action:@selector(addlikes:)
forControlEvents:UIControlEventTouchUpInside];
[cell.btnForLike setImage:[UIImage imageNamed:@"like.png"] forState:UIControlStateNormal];
[cell.btnForFavourite addTarget:self
action:@selector(addFavourite:)
forControlEvents:UIControlEventTouchUpInside];
cell.btnForFavourite.tag=[[[arrayForPhotosData1 objectAtIndex:s]valueForKey:@"mediaid"] intValue];
cell.btnForComment.tag=[[[arrayForPhotosData1 objectAtIndex:s]valueForKey:@"mediaid"] intValue];
[cell.btnForComment addTarget:self action:@selector(addcomen:)forControlEvents:UIControlEventTouchUpInside];
cell.imgPhoto.tag=[[[arrayForPhotosData1 objectAtIndex:s]valueForKey:@"mediaid"] intValue];
[cell.imgPhoto addTarget:self action:@selector(addcoments:)forControlEvents:UIControlEventTouchUpInside];
cell.btnForLike.tag=s;
[cell.btnForLikeText setTitle:[NSString stringWithFormat:@"%@ Me gusta",[[arrayForPhotosData1 objectAtIndex:s] valueForKey:@"Totallikes"]] forState:UIControlStateNormal];
[cell.btnForCommentText setTitle:[NSString stringWithFormat:@"%@ Commentarios",[[arrayForPhotosData1 objectAtIndex:s] valueForKey:@"TotalComment"]] forState:UIControlStateNormal];
[cell.btnForLikeText addTarget:self
action:@selector(addlikes:)
forControlEvents:UIControlEventTouchUpInside];
cell.btnForLikeText.tag=s;
cell.btnForCommentText.tag=s;
cell.btnForFavouritetext.tag=s;
[cell.btnForFavouritetext addTarget:self
action:@selector(addFavourite:)
forControlEvents:UIControlEventTouchUpInside];
[cell.btnForCommentText addTarget:self action:@selector(addcomen:)forControlEvents:UIControlEventTouchUpInside];
if([[[arrayForPhotosData1 objectAtIndex:s] valueForKey:@"FavoriteIsActive"] isEqualToString:@"true"])
{
[cell.btnForFavouritetext setTitle:[NSString stringWithFormat:@"%@ ",@"Favoritos"] forState:UIControlStateNormal];
}
[cell.btnForFavouritetext setTitle:[NSString stringWithFormat:@"%@ ",@"Favoritos"] forState:UIControlStateNormal];
[arrayForCell addObject:cell];
}
[tableViewForPhotos reloadData];
и это мое отображение данных в ячейке
static NSString *simpleTableIdentifier1 = @"TableItem1";
PhotoCell *cell1 = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier1];
if (cell1 == nil) {
cell1 = [[PhotoCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier1];
}
if ([arrayForCell count]>0) {
cell1= [arrayForCell objectAtIndex:indexPath.row-1];
cell1.selectionStyle=UITableViewCellSelectionStyleNone;
return cell1;
}
После загрузки 50 изображений приложение получает предупреждение о получении памяти.
1 ответ
Нет необходимости проверять, равен ли cell1 нулю. Если вы зарегистрировали [класс PhotoCell], то он никогда не будет нулевым.
Я полагаю, вы получаете предупреждение памяти, потому что вы не используете ячейки повторно.
Вот:
cell1= [arrayForCell objectAtIndex:indexPath.row-1];
Чего ты пытаешься достичь?