iOS:如何在没有延迟的情况下执行其他任务中的功能

时间:2014-07-30 09:05:19

标签: ios objective-c uitableview sdwebimage

我有问题。我有一个带图像的UITableViewCell。图像是从应用程序包动态加载的。该函数大约有200行,其中包含很多if语句。我基本上根据文件的后缀提取文件的图标,如果文件是一个应用程序我解析info.plist并提取图标的文件名。如果plist中的文件名没有后缀我追加它然后我选择了最大的图标。然后,该函数在我的应用程序包或我解析的应用程序的应用程序包中返回文件的fileURL。我也做了更多的事情,但这很难解释。

我已使用SDWebImage,这就是为什么我返回NSURL而不是UIImage

问题是,没有A7 CPU的旧设备上的滚动非常困难。 我的想法是我将该函数放在另一个NSOperationQueue中,但我不太确定,因为我已经使用SDWebImagecompblock。图像不必立即加载,可能需要一些,同时我显示占位符图像。

有没有人知道如何制作这种液体?

谢谢大卫

我刚刚解决了我的问题,我在功能上多次执行了自己的NSUserDefault服装和解密!我通过最小化并调用它来修复它并存储值。谢谢你的帮助!

2 个答案:

答案 0 :(得分:0)

此示例可以帮助您: https://developer.apple.com/library/ios/samplecode/LazyTableImages/Introduction/Intro.html

一般规则是:主线程仅用于更改UI。其他工作应该在另一个线程中完成。尝试将代码移动到后台线程。

答案 1 :(得分:0)

每次显示表格视图单元格时是否解析plist文件?如果是=>解析plist文件只一次,将结果保存在内存中,然后使用它。这是"懒惰/缓存加载"。 NSDictionary可能是一个很好的选择。键是用于决定要显示哪个图像的键。值应为NSURL个对象。

这应该会使整个过程更快。