Swift Closure中的可选链接,其中返回类型必须为Void

Swift Closure中的可选链接,其中返回类型必须为Void,第1张

Swift Closure中的可选链接,其中返回类型必须为Void

可选链接将右侧结果放在可选元素内。因此,如果

run()
返回
T
,则
x?.run()
返回
T?
。由于
run()
返回
Void
(aka
()
),这意味着整个可选链表达式都具有类型
Void?
(或
()?
)。

当闭包只有一行时,该行的内容将隐式返回。因此,如果只有一行,就好像您写了一样

returnweakSelf.rscript?.run()
。因此,您正在返回类型
Void?
,但是
dispatch_async
需要一个返回的函数
Void
。因此它们不匹配。

一种解决方案是添加另一行,该行明确不返回任何内容:

dispatch_after(time, dispatch_get_main_queue()) {    weakSelf.rscript?.run()    return}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4902511.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-12
下一篇 2022-11-12

发表评论

登录后才能评论

评论列表(0条)

保存