2008-10-28 68 views
0

我正在开发iPhone应用程序,并在那个应用程序中我有一个TableViewController, 和TableViewController组成的自定义表格单元格。
到我正在从URL加载图像,但scrolling并不那么光滑,(因为每次滚动时发生每个单元格加载图像)。我如何将从Web检索的图像存储到应用程序包中?

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

有什么建议吗?

而且在我发现SQLITE具有BLOB数据类型来存储二进制数据的其他论坛,

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

回答

2

设备可能会有所改善的事情上存储的图像,但它不会使滚动真的光滑。滚动的原因往往变得不连贯是因为你的单元代码中的一个同步函数意味着你阻止了运行循环,从而阻止了动画。如果你想加快滚动速度,你需要去掉阻塞事件,通过使其异步(尽管如果你是异步回调需要很多CPU时间,这仍然可能导致它滚动滚动),或者关闭阻塞代码主线程。

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

0

您可以使用NSFileManagercreateFileAtPath将任何NSData保存到文件中。

发出文件目录,使用:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
相关问题