首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >API响应闭包中的iOS Swift 3 DispatchQueue.main.async()

API响应闭包中的iOS Swift 3 DispatchQueue.main.async()
EN

Stack Overflow用户
提问于 2017-07-24 04:34:44
回答 2查看 624关注 0票数 0

因此,我从一个API服务中解析一个json响应,并在响应解析闭包中更新UI,这应该是异步发生的。

我注意到--尽管API的响应非常快,但我可以从控制台日志中看出-- UI不会立即更新。需要几秒钟才能更新。

所以我搜索了一下,发现将UI更新代码放在DispatchQueue.main.async()中可以修复它。

为什么是这种情况?闭包不应该是异步的,并处理好所有这些吗?我是不是误会了什么?谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-24 04:40:53

是的,我的朋友,你在这里漏掉了什么。闭包本质上不应该是异步的。甚至您定义的正常函数都是闭包。闭包不是解决所有问题的魔杖。它只是一个可以传递的语句块。

正如您说的那样,响应来得很快,但UI不会自动更新,这可能需要花时间进行解析。确保您没有在主队列上执行解析部分,只有UI更新应该在主队列上。

票数 1
EN

Stack Overflow用户

发布于 2017-07-24 04:51:53

您正在使用URLSessionsdataTask(with:completionHandler:) api吗?如果是这样的话,则从后台队列调用completionHandler。这就是为什么更新UI需要一些时间(这里要小心,您也可以得到随机崩溃)。

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

https://stackoverflow.com/questions/45280792

复制
相关文章
Swift中的闭包(Closures)
闭包是自包含的函数代码块,可以在代码中被传递和使用。 Swift 中的闭包与 C 和 Objective-C 中的代码块(blocks)以及其他一些编程语言中的 lambdas 函数比较相似。
EltonZheng
2021/01/22
2K0
Swift入门:闭包
到目前为止,您已经遇到了整数、字符串、双精度数、浮点数、布尔值、数组、字典、结构和类,但是还有另一种类型的数据在Swift中广泛使用,它被称为闭包。这些是复杂的,但它们是如此强大和富有表现力,它们在 Cocoa Touch 广泛使用,所以如果你不了解他们,你不会走得很远。
韦弦zhy
2020/03/19
5510
Swift 中的 Sendable 和 @Sendable 闭包
Sendable 和 @Sendable 是 Swift 5.5 中的并发修改的一部分,解决了结构化的并发结构体和执行者消息之间传递的类型检查的挑战性问题。
韦弦zhy
2022/11/14
1.5K0
Swift 中的 Sendable 和 @Sendable 闭包
Swift之闭包
Swift 是一门由Apple 公司开发的用于iOS和OSX设备上的开发语言,吸收了很多现代开发语言的优势。 今天看了官方的关于闭包部分的文档,感觉很不错,记录一下。
EltonZheng
2021/01/26
1.7K0
swift的闭包结构
函数的设计思路是将有一定功能的代码块包装在一起,通过函数名实现复用。闭包和函数有着类似的作用,然而闭包的设计大多数情况下并不是为了代码的复用,而是传递功能代码块和处理回调结构。 如下代码所示,使用了冒泡排序算法来进行排序操作。 func mySort(array:inout Array<Any>,sortClosure:(Int,Int)->Bool)->Array<Any> { for indexI in array.indices {
用户2554571
2018/07/19
5700
Swift学习:闭包
本篇将详细总结介绍Swift闭包的用法; 闭包是自包含的函数代码块,可以在代码中被传递和使用。Swift中的闭包与C和 Objective-C中的代码块(blocks)以及其他一些编程语言中的匿名函数比较相似。
梧雨北辰
2018/08/09
8680
Swift教程(七)--闭包
闭包是可以在你的代码中被传递和引用的功能性独立模块。Swift 中的闭包和 C 以及 Objective-C 中的 blocks 很像,还有其他语言中的匿名函数也类似。
roc
2019/07/31
7750
Swift系列八 - 闭包
要想使用exec函数,则必须传入两个Int类型的参数和一个返回Int类型的函数,然后exec内部执行了传入的函数。
呆呆
2021/05/27
4320
Swift-闭包(一)
array.sort{(n1:Int,n2:Int) -> Bool in return n1<n2}
Wilbur-L
2021/03/18
4520
Swift 基于闭包的类型擦除
与许多其他语言相比,使Swift更加安全,更不易出错的原因之一是其先进的(并且在某种程度上是不容忍的)类型系统。这是一种语言功能,有时可能会给人留下深刻的印象,使您的工作效率提高很多,而有时却令人沮丧。
Swift社区
2021/11/26
1.2K0
Swift 基于闭包的类型擦除
与许多其他语言相比,使Swift更加安全,更不易出错的原因之一是其先进的(并且在某种程度上是不容忍的)类型系统。这是一种语言功能,有时可能会给人留下深刻的印象,使您的工作效率提高很多,而有时却令人沮丧。
韦弦zhy
2021/06/11
1.1K0
Swift 基于闭包的类型擦除
【Swift4】(6) 闭包 | 闭包应用 | 闭包作为函数参数 | 捕获特性
前端修罗场
2023/10/07
1940
iOS 面试策略之系统框架-网络、推送与数据处理
如果说移动时代的前身是什么,我想一个可能的答案就是网络时代。网络的兴起,让所有设备相连成为了可能,也催生了电商、社交、搜索等多个领域的商业巨头。而移动时代,则是网络时代的必然延伸,它代表着更便捷、更广阔、更深入的连接。
会写bug的程序员
2021/05/15
1.9K0
iOS 面试策略之系统框架-网络、推送与数据处理
Swift 闭包支持隐式 self
在 closure 捕获列表中,如果显式捕获self,则在 closure 使用时,则允许隐式使用self。即在 closure 捕获列表中声明[self], 则 closure 内调用self.的地方都可以不用书写该self.。这个特性在SE-0269中提议。现在本篇提议想把这个特性支持扩展到weak self的捕获上,并允许隐式self和已解包的self一样使用。效果就是如果在 closure 内 self 已经解包,则 closure 内调用 self 的地方可以不用写 self。如下例的dismiss方法调用:
DerekYuYi
2022/11/09
1.4K0
Swift-day4---闭包(Closures)
闭包写在一对大括号中,用 "in"关键字分隔,"in"后的语句是闭包的主体."in"之前的参数和返回值类型是语句组中所使用的参数和返回值格式的一种指示,并不必在语句组中进行逻辑运算和返回.闭包的表达式的运算结果是一种函数类型,可以作为表达式,函数参数和函数返回值
CC老师
2023/03/23
6310
Swift-day4---闭包(Closures)
Swift进阶六——函数和闭包
形式参数,指的是是在函数的定义中,系统并没有为其分配内存空间、但是在函数里面可以使用的参数。比如下面的a就是形式参数:
拉维
2021/01/21
1.2K0
Swift3.0 - 函数和闭包
需求: 创建一个接口,输入true 返回 两个数相加的函数,输入false 返回两个数相减的函数
酷走天涯
2018/09/14
1.1K0
Swift3.0 - 函数和闭包
Swift讲解专题八——闭包 原
        Swift中的闭包是有一定功能的代码块,这十分类似于Objective-C中的block语法。Swift中的闭包语法风格十分简洁,其作用和函数的作用相似。
珲少
2018/08/15
3880
谈谈自己的理解:python中闭包,闭包
闭包这个概念好难理解,身边朋友们好多都稀里糊涂的,稀里糊涂的林老冷希望写下这篇文章能够对稀里糊涂的伙伴们有一些帮助~
py3study
2020/01/13
9660
初识js中的闭包_Js闭包中变量理解
  今天看了关于js闭包方面的文章,还是有些云里雾里,对于一个菜鸟来说,学习闭包确实有一定的难度,不说别的,能够在网上找到一篇优秀的是那样的不易。
全栈程序员站长
2022/09/21
3.3K0

相似问题

转义DispatchQueue.main.async Swift 3中的闭包设置视图

114

Swift3中的Curried闭包?

112

Swift 3中的闭包速记语法

12

为闭包中的变量赋值- iOS Swift

112

DispatchQueue.main.async不调用转义闭包

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文