Ios 从Core Data加载图像=UITableView卡滞

Ios 从Core Data加载图像=UITableView卡滞,ios,uitableview,core-data,Ios,Uitableview,Core Data,这是我的第一篇帖子——我是iOS开发新手;) 我正在开发一个应用程序,用户可以在核心数据中存储一些东西,如标题、文本、图像,并在tableview中显示 我读了很多教程,并试图把它们拼凑在一起——到目前为止,一切都很好,但当我在tableview中滚动“快一点”时,它有点卡住了。我在谷歌上搜索了几个小时,我想我知道的是,每次重新加载细胞,可能是图像的原因,使它卡住了。我阅读了异步任务、大中心调度等方面的内容,尝试使用一些示例代码,但无法使其正常工作。因此,专业人士的一些建议将非常有用:) 这是我

这是我的第一篇帖子——我是iOS开发新手;)

我正在开发一个应用程序,用户可以在核心数据中存储一些东西,如标题、文本、图像,并在tableview中显示

我读了很多教程,并试图把它们拼凑在一起——到目前为止,一切都很好,但当我在tableview中滚动“快一点”时,它有点卡住了。我在谷歌上搜索了几个小时,我想我知道的是,每次重新加载细胞,可能是图像的原因,使它卡住了。我阅读了异步任务、大中心调度等方面的内容,尝试使用一些示例代码,但无法使其正常工作。因此,专业人士的一些建议将非常有用:)

这是我填充单元格的地方,我想我必须以某种方式异步/可重用地完成这项工作,但是如何做到呢

- (void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath
{
    NSManagedObject *object = [self.fetchedResultsController objectAtIndexPath:indexPath];

    cell.textLabel.text = [object valueForKey:@"title"];

    NSDate *date = [object valueForKey:@"date"];
    NSDateFormatter *format = [[NSDateFormatter alloc] init];
    [format setDateFormat:@"dd.MM.yyyy"]; 
    cell.detailTextLabel.text = [format stringFromDate:date];

    UIImage *image = [UIImage imageWithData:[object valueForKey:@"image"]];
    cell.imageView.image = image;
}

可能不应该在核心数据中存储图像,而应该存储表示文件路径的字符串。无论如何,你在这里的问题与放慢可能是因为图像太大。创建图像的缩略图并将其显示在单元格中。我想永久存储图像,这样当用户退出应用程序时图像不会消失。也许我弄错了,但是像其他的一样将图像存储在核心数据中不是一个好主意吗?另外,如果用户选择了一个单元格,他可以在detailview中看到更大的图像,甚至可以放大等等,所以我猜缩略图不是解决方案,或者我可以只在tableview中使用缩略图吗?如果是,怎么做?thxIt将图像存储到CoreData中不是一个好主意,不-通常您会将它们存储到Documents目录中,并将文件路径保存到CoreData中。是的,我明白了,只需使用UITableViewCell的缩略图,以及restThx的全尺寸图像。正如我所说的,我仍然是noob,所以我希望我的理解是正确的。有一次,我将录制的sounfiles保存在“应用程序目录”中,并在URL中添加了一个时间字符串,以避免覆盖该文件。我可以这样做吗?self.recordedSoundFileURL=[NSURL fileURLWithPath:[NSTemporaryDirectory()stringByAppendingFormat:@“%@.wav”,self.TodaysDataTestRing];您指的是记录目录的NSTemproyDirectory吗?如果您不想在应用程序启动期间持久保存映像,请仅使用NSTemporaryDirectory。顾名思义,存储在那里的文件不会永远存在。