Я использую модель данных для хранения 2 объектов: видео, изображений.
Видео содержит только строковые атрибуты, а изображения имеют 2 атрибута «Двоичные данные».
В начале 2 атрибута двоичных данных были в видеообъекте.
Но все видео загружаются во время инициализации UITableView.
Для 400 видео двоичные данные представляют 20 Мо, так что представьте себе 4000 видео ...
Теперь с 2 объектами загрузка UITableView работает хорошо.
Я загружаю двоичные данные, когда это необходимо в методе: tableView: cellForRowAtIndexPath
Но теперь, чем больше я прокручиваю список, тем больше растет память: (
посмотрите на мой метод:
- (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;
}
И метод setvideo в 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];
}
Даже без установки smallImage у меня проблемы с памятью.
Если я загружаю объект изображения, он никогда не освобождается.
Я пытаюсь найти решение для освобождения памяти без успеха ... (didTurnIntoFault, release, CFRelease ...)
В инструменте производительности я могу видеть мои двоичные данные как CFData.
Я часто использую пример iPhoneCoreDataRecipes и PhotoLocations.
Мне нужна помощь, чтобы очистить мою память;)
Спасибо
Samuel