2013-02-28 76 views
0

我将照片相册中的图像作为NSData存储在我的应用程序文档目录中,并将它们显示在UITableView中。我的表现有问题。将图像保存到应用程序目录需要很长的时间,并且在将它们加载到TableView时遇到同样的问题。这是我的代码来存储图片:UITableView中的NSData的UIImage - 性能问题

//Convert UIImage to NSData 
NSData *imageData = [NSData dataWithData:UIImagePNGRepresentation(image)]; 

//Save image to app documents directory 
NSError *error; 
[imageData writeToFile:fullImagePath options:NSDataWritingAtomic error:&error]; 

这就是我将它们加载到的UITableView:

NSData *imageData = [NSData dataWithContentsOfFile:path]; 
UIImage *myImage = [UIImage imageWithData:imageData]; 

cell.imageView.image = myImage; 

什么会引起这些性能问题?是否有任何其他方式来存储和检索应用程序文档目录中的图像?

回答

7

两种方法:

首先,你可能会考虑缩小图像保存在他们面前,或储存显示额外的小副本表视图。这取决于你需要多么优秀的图像 - 大概对于表格视图来说不像具有MB数据的全尺寸图片那么大。实际上,如果图像适当缩放,图像也会更好看。这本身应该照顾延误。

其次,您可能会考虑异步加载图像。保持可下载的可变数组图像。创建一个完成下载并在完成时通知表视图的单例。在通知(或委托)回调中设置cell.imageView.image

+0

谢谢,我会尝试缩放和异步加载。 – Guferos 2013-03-01 12:19:36