Я разработал проект, в котором пользователь рисует изображение на холсте, я храню его в файле с помощью CoreData, у меня есть отношения «один ко многим», называемые папками. Итак, вот все изображения. Я извлекаю изображения из файлов, изменяю размер в соответствии с высотой ячейки таблицы и показываю ее на таблице. Как только он будет показан, я хочу кэшировать изображения.Как использовать NSCache с CoreData
У меня также есть несколько ярлыков в ячейке папки, которые дают мне некоторую информацию о моих файлах, которую я обновляю на лету. Я также провёл клетки, чтобы отметить ее, и переместил ее в нижнюю часть ячейки.
Я также показываю одинаковые изображения файлов в разных представлениях в зависимости от того, как пользователь запрашивает его.
Я хочу знать лучший способ для этого, я читаю через Интернет, их много методов, GCD, NSOperationQueues и многие другие.
Какой метод лучше всего подходит для меня.
Я хочу показать некоторый код
- (UITableViewCell *)tableView:(FMMoveTableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
FolderCell *tableCell = (FolderCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (tableCell == nil)
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"FolderCell" owner:self options:nil];
tableCell = [nib objectAtIndex:0];
}
NSMutableArray *categoryArray = [[self.controller fetchedObjects]mutableCopy];
Folder *category = [categoryArray objectAtIndex:[indexPath row]];
[tableCell configureCellWithNote:category]; //This function is written in my FolderCell.m function
}
return tableCell;
}
-(void)configureCellWithNote:(Folder *)category
{
self.category = category;
UIImage *image1 = [UIImage imageWithData:category.noteImage];
CGSize newSize;
if(image1.size.width == 620 && image1.size.height == 200)
{
newSize = CGSizeMake(300, 97);
}
UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
[image1 drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
self.notesImage.image = newImage;
}
Так что же происходит в том, что configureCellWithNote занимает много времени, потому что это изменение размеров изображений. Пожалуйста, помогите мне решить, как эта проблема может быть решена.
С уважением Rajit
Я думаю ipmcc ответил на вопрос тайника. Кстати, я мог бы склонить эту логику изменения размера изображения к категории «UIImage». Кроме того, что, если изображение не было 620x200, тогда это не сработает должным образом. Безопаснее использовать общий алгоритм изменения размера, для которого вы можете использовать 'UIViewContentModeScaleAspectFill' или' UIViewContentModeScaleAspectFit', например. http://stackoverflow.com/questions/10491080/uiimage-resizing-not-working-properly/10491692#10491692 – Rob