В настоящее время я создаю приложение, которое генерирует изображения и сохраняет их в NSMutableArray, который затем используется в UINavigation (Cell.imageView.image).Мне нужно иметь возможность обрабатывать до 2000 изображений без задержки в моем приложении.
В настоящее время я задаю этот способ генерации, вызывая метод генерации при обращении к cellForRowAtIndexPath
.Которая, по-видимому, вызывает задержку в 4-5 секунд до вызова следующей навигации.
к счастью, после этих 4-5 секунд генерация завершена, и проблем нет.
В мире iProducts ожидание 4-5 секунд на самом деле не вариант.Мне интересно, каковы мои варианты создания этих изображений в фоновом режиме.Я пытался использовать темы [self performSelectorInBackground:@selector(presetSnapshots) withObject:nil]
;но это только дало мне проблемы с векторами по какой-то причине.
Вот генерирующий код:
-(void)presetSnapshots{
//NSAutoreleasePool* autoReleasePool = [[NSAutoreleasePool alloc] init];
for (int i = 0; i < [selectedPresets count]; ++i){
GraphInfo* graphInfo = [selectedPresets objectAtIndex:i];
graphInfo.snapshot = [avc takePictureOfGraphInfo:graphInfo PreserveCurrentGraph:false];
[graphInfo.snapshot retain];
}
//[autoReleasePool drain];
presetSnapshotFinished = YES;
}
внутри - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
есть
if (presetSnapshotFinished == NO){
[self presetSnapshots];
//[self performSelectorInBackground:@selector(presetSnapshots) withObject:nil];
}
cell.imageView.image = [[selectedPresets objectAtIndex:indexPath.row] snapshot];
Править:
Я также предпочитаю не использовать coreData для этого.Изображения размером 23x23 и размером около 7 КБ.Таким образом, около 6 МБ используется в любой момент времени в памяти.