0

我正在开发 iPhone 应用程序,在那个应用程序中我有一个TableViewController,它TableViewController由自定义表格单元格组成。
进入那些我从 URL 加载图像的单元格,但scrolling不是那么顺利,(因为每个单元格在每次滚动时都会加载图像)。

所以我决定将这些图像存储到应用程序的文件夹中,但是当应用程序处于运行状态时,我不知道如何在 iPhone 中使用文档文件夹。

有什么建议吗?

在其他论坛上,我发现 SQLITE 具有 blob 数据类型来存储二进制数据,

哪种方法有效,文件夹或sqlite存储图像?

4

2 回答 2

2

将图像存储在设备上可能会有所改善,但不会使滚动真正流畅。滚动变得不稳定的原因是单元格代码中的同步函数意味着您阻塞了运行循环,从而阻止了动画。如果你想加快滚动,你需要摆脱阻塞事件,通过使其异步(尽管如果你异步回调需要大量 CPU 时间,这仍然可能导致它滚动),或者移动阻塞代码主线程。

如果您将负载移出主线程,则单个文件或 sqlite3 数据库都可以正常工作。您会发现的另一个大问题是单元格在滚动时不会更新。这意味着如果您执行异步图像加载以响应单元格加载,则图像将不会出现在单元格中,直到用户完成滚动,这通常不是所需的体验。为了避免这种情况,您需要在用户滚动图像之前预测性地将图像加载到 ram 中。

于 2008-10-28T09:47:28.093 回答
0

您可以使用NSFileManager'screateFileAtPath将任何内容保存NSData到文件中。

要获取 Documents 目录,请使用以下命令:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
于 2008-10-28T08:14:00.047 回答