Я использую модель данных для хранения двух объектов: видео, изображений. Видео содержит только строковые атрибуты, а изображения имеют 2 атрибута «Двоичные данные».
Вначале в видеообъекте были 2 атрибута двоичных данных. Но все видео загружаются во время инициализации UITableView. Для 400 видео двоичные данные представляют 20 Мо, так что представьте, с 4000 видео ...
Теперь с двумя объектами загрузка 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.
Мне нужна помощь, чтобы очистить память;)
Спасибо
Самуэль
editingTableViewCell
? - person slf   schedule 22.01.2010