у меня есть этот код, чтобы управлять CollectionViewIOS: numberOfSectionsInCollectionView сообщение отправлено высвобождены, например
- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
{
return 1;
}
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
return [images count];
}
- (PhotoCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
PhotoCell *cell = [gridPhoto dequeueReusableCellWithReuseIdentifier:@"photocell" forIndexPath:indexPath];
NSMutableDictionary *record = [images objectAtIndex:[indexPath row]];
if ([record valueForKey:@"actualImage"]) {
[cell.image setImage:[record valueForKey:@"actualImage"]];
[cell.activity stopAnimating];
} else {
dispatch_async(imageQueue_, ^{
NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:[record objectForKey:@"url"]]];
dispatch_async(dispatch_get_main_queue(), ^{
[record setValue:[UIImage imageWithData:imageData] forKey:@"actualImage"];
[collectionView reloadItemsAtIndexPaths:[NSArray arrayWithObject:indexPath]];
});
});
}
return cell;
}
Он работает хорошо, если imageQueue_ закончить свою работу и заполнить всю CollectionView; У меня есть проблема, когда я выйти из моего зрения, призывающих заднего
- (IBAction)back:(id)sender{
[self.navigationController popViewControllerAnimated:YES];
}
В этом случае, если CollectionView не вся заселены образов у меня есть эта ошибка, когда я делаю обратное действие:
[PhotoGalleryViewController numberOfSectionsInCollectionView:]: message sent to deallocated instance 0x1590aab0
где это проблема?
кто-то (какой-то предмет), имеет сильную ссылку на ваш CollectionView, сохраняя его живым в памяти , поэтому он продолжает отправлять ваши сообщения делегата. Можете ли вы предоставить код из файла .h –