J'utilise le datamodel pour stocker 2 objets: Vidéo, Images. La vidéo contient uniquement des attributs de chaîne et les images ont deux attributs "Données binaires".release NSData dans NSManagedObject
Au début, les 2 attributs de données binaires se trouvaient dans l'objet vidéo. Mais toutes les vidéos sont en cours de chargement lors de l'initialisation de UITableView. Pour 400 vidéos, les données binaires représentent 20 Mo, alors imaginez avec 4000 vidéos ...
Désormais, avec 2 objets, le chargement UITableView fonctionne bien. -je charger des données binaires quand il est nécessaire dans la méthode: tableView: cellForRowAtIndexPath
Mais maintenant, plus je défiler dans la liste, plus la mémoire grandir regard :(
à ma méthode:
- (UITableViewCell *)tableView:(UITableView *)myTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"videoCell";
Video *theVideo = (Video *)[[self fetchedResultsController] objectAtIndexPath:indexPath];
VideoCellViewController *cell = (VideoCellViewController *)[myTableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
[[NSBundle mainBundle] loadNibNamed:@"VideoCellView" owner:self options:nil];
cell = editingTableViewCell;
self.editingTableViewCell = nil;
}
cell.video = theVideo;
return cell;
}
Et la méthode setvideo dans VideoCellViewController
- (void)setVideo:(Video *)newVideo {
if (newVideo != video) {
[video release];
video = [newVideo retain];
}
NSData *imageData = [video.allImages valueForKey:@"thumbnailImage"];
UIImage *uiImage = [[UIImage alloc] initWithData:imageData];
smallImage.image = uiImage;
nameLabel.text = video.displayName;
[uiImage release];
}
Même sans mettre le SmallImage, j'ai du mal de mémoire. Si je charge l'objet image, il ne sortira jamais.
J'essaye beaucoup de solution pour libérer la mémoire sans succes ... (didTurnIntoFault, release, CFRelease ...) Dans l'outil de représentation, je peux voir mes données binaires comme CFData. J'utilise beaucoup d'exemple iPhoneCoreDataRecipes et PhotoLocations.
je besoin d'aide pour nettoyer ma mémoire;)
Merci
Samuel
D'où provient 'editingTableViewCell'? – slf