1

例如,如果从服务器下载图像,我们应该延迟加载图像。我想知道其他情况。

4

4 回答 4

2

总是这样做不会有什么坏处。最近推出的所有设备都受益于多核 CPU。Grand central dispatch 可以轻松定义将在另一个内核上执行的进程,然后在完成后将其同步到主线程以进行 UI 更新。

如果你这样做,你的应用程序会感觉更灵敏,并且也很容易从本地磁盘访问转移到对资源的​​远程访问。

例子:

 dispatch_queue_t taskQ = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
    dispatch_async(taskQ, ^
    {
        //Do some work. . . . 

        //Now update back on the main thread
        dispatch_async(dispatch_get_main_queue(), ^
        {

        });
    });


    //release the queue. 
于 2013-02-11T08:52:29.843 回答
2

图像尚未在活动内存中并准备好显示的任何时间。

如果您从磁盘或核心数据加载图像,那么延迟加载它并使用占位符图像直到它完成不会有什么坏处。

特别是对于 UITableView,当您以 100x100 显示图像并且实际图像为 1000x1000 时。

在 BG 中调整大小,完成后呈现小图像。

于 2013-02-11T08:54:19.060 回答
0

延迟加载的想法是您仅在需要时才加载资源。例如,如果您的应用程序包中有很多图像/资源,您可以在应用程序启动时将它们全部加载,同时让所有内容都进入内存。这是一个坏主意,因为它不仅使用大量 RAM(也非常不必要,因为它不会同时全部显示在屏幕上),而且可能需要很长时间才能加载。

于 2013-02-11T08:53:25.933 回答
0

如果您在获取消息并显示消息方面的操作将在主线程上花费大量时间并阻塞您的应用程序,那么您应该在后台线程上执行您的操作。

于 2013-02-11T08:54:02.973 回答