首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >下载多个图像以在UI上显示

下载多个图像以在UI上显示
EN

Stack Overflow用户
提问于 2019-06-30 20:54:46
回答 1查看 195关注 0票数 0

我正在设计iOS应用,它在每个屏幕上下载6张图片,我有8个这样的屏幕。每次屏幕显示时,我都会异步下载图片。如何在下载..should后一次显示所有图像?我使用分派组

另外,我是否应该缓存我的图像,因为用户返回到以前的屏幕是可行的?如果我缓存,我可能必须缓存所有的图像(8个屏幕-6个图像,总共42张图像)。

请指点

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-01 03:05:01

这里有一个想法,一次显示所有的图像。使用DispatchSemaphore,根据文档

调度信号量是传统计数信号量的有效实现。只有在需要阻塞调用线程时,分派信号量才会向下调用内核。如果调用信号量不需要阻塞,则不进行内核调用。 通过调用signal()方法来增加信号量计数,并通过调用wait()或其指定超时的变体之一来减少信号量计数。

代码语言:javascript
运行
复制
// Declaration
let semaphore = DispatchSemaphore(value: 1)
...
// resource request
semaphore.wait()
...
// resource release
semaphore.signal()

示例

代码语言:javascript
运行
复制
DispatchQueue.global().async {
   print("download 1 - wait")
   semaphore.wait()
   print("download 1 - wait finished")
   semaphore.signal()
   print("download 1 - finished")
}

要缓存或不缓存图像取决于您的场景,如果屏幕非常重要,并且经常返回到此屏幕,NSCache可以完成此工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56828021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档