UIImage-Speicher nicht freigeben VM: ImageIO_JPEG_DATA?
Ich habe mehrere Sammlungsansichten gleichzeitig auf dem Bildschirm, die horizontal scrollen. Sie sind alle mit Bildern gefüllt. Alle diese Bilder werden im Hintergrund über die Parse-API geladen. Ich verwende die Zuordnungen von Instrument und die anonyme VM: ImageIO_JPEG_DATA-Kategorie belegt einen Großteil des verwendeten Speichers. Der gesamte Speicher in der App entspricht ungefähr 40, und dann ist diese Kategorie über 55, was eine Gesamtsumme von ungefähr 100 ergibt. Diese Kategorie sinkt überhaupt nicht und bleibt einfach konsistent. Was kann ich tun, um diesen Speicherplatz aus den Bildern in meinen Sammlungsansichten freizugeben?
Hier ist der Code für meine Sammlungsansicht:
.m für meinen Collection View Controller
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
CollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"CollectionViewCell" forIndexPath:indexPath];
if (cell) {
[cell.loadingImageIndicator setHidden:NO];
[cell.loadingImageIndicator startAnimating];
id photo = [self.collectionViewPhotos objectAtIndex:indexPath.item];
if ([photo isKindOfClass:[PFObject class]]) {
PFObject *photoObject = (PFObject *)photo;
PFFile *imageFile = [photoObject objectForKey:kPhotoPictureKey];
[cell.cellImage setFile:imageFile];
[cell.cellImage loadInBackground:^(UIImage *image, NSError *error) {
[cell.cellImage setContentMode:UIViewContentModeScaleAspectFill];
[cell.loadingImageIndicator stopAnimating];
[cell.loadingImageIndicator setHidden:YES];
}];
} else if ([photo isKindOfClass:[UIImage class]]) {
[cell.cellImage setImage:photo];
[cell.cellImage setContentMode:UIViewContentModeScaleAspectFill];
}
}
return cell;
}
.m für CollectionViewCell
- (void)prepareForReuse
{
self.cellImage.image = nil;
}
- (void)dealloc
{
self.cellImage = nil;
}
Bearbeiten: Foto von Instrumenten