Error[8]: Undefined offset: 2, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述我有一个扩展数组的形式: extension Array{ private func someFunction(someClosure: (() -> Int)?) { // Do Something } func someOtherFunction(someOtherClosure: () -> Int) { someF 我有一个扩展数组的形式:

extension Array{    private func someFunction(someClosure: (() -> Int)?)    {        // Do Something    }    func someOtherFunction(someOtherClosure: () -> Int)    {        someFunction(someClosure: someOtherClosure)    }}

但我收到错误:将非转义参数’someOtherClosure’传递给函数,期望@escaPing闭包.

两个闭包确实是非转义(默认情况下),并且明确地将@noescape添加到someFunction会产生一个警告,指示这是Swift 3.1中的默认值.

知道我为什么会收到这个错误吗?

– 更新 –
附上截图:

解决方法 如前所述,可选闭包正在逃避.另外一个补充:

Swift 3.1有一个withoutActuallyEscaping辅助函数,在这里很有用.它标记了一个闭包,只是为了在传递的闭包内使用它,因此您不必将转义属性公开给函数签名.

可以像这样使用:

extension Array {    private func someFunction(someClosure: (() -> Int)?) {        someClosure?()    }    func someOtherFunction(someOtherClosure: () -> Int) {        withoutActuallyEscaPing(someOtherClosure) {            someFunction(someClosure: [+++])        }    }}let x = [1,2,3]x.someOtherFunction(someOtherClosure: { return 1 })

希望这有用!

总结

以上是内存溢出为你收集整理的解决Swift 3中的非转义闭包问题全部内容,希望文章能够帮你解决解决Swift 3中的非转义闭包问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 165, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
解决Swift 3中的非转义闭包问题_app_内存溢出

解决Swift 3中的非转义闭包问题

解决Swift 3中的非转义闭包问题,第1张

概述我有一个扩展数组的形式: extension Array{ private func someFunction(someClosure: (() -> Int)?) { // Do Something } func someOtherFunction(someOtherClosure: () -> Int) { someF 我有一个扩展数组的形式:

extension Array{    private func someFunction(someClosure: (() -> Int)?)    {        // Do Something    }    func someOtherFunction(someOtherClosure: () -> Int)    {        someFunction(someClosure: someOtherClosure)    }}

但我收到错误:将非转义参数’someOtherClosure’传递给函数,期望@escaPing闭包.

两个闭包确实是非转义(默认情况下),并且明确地将@noescape添加到someFunction会产生一个警告,指示这是Swift 3.1中的默认值.

知道我为什么会收到这个错误吗?

– 更新 –
附上截图:

解决方法 如前所述,可选闭包正在逃避.另外一个补充:

Swift 3.1有一个withoutActuallyEscaping辅助函数,在这里很有用.它标记了一个闭包,只是为了在传递的闭包内使用它,因此您不必将转义属性公开给函数签名.

可以像这样使用:

extension Array {    private func someFunction(someClosure: (() -> Int)?) {        someClosure?()    }    func someOtherFunction(someOtherClosure: () -> Int) {        withoutActuallyEscaPing(someOtherClosure) {            someFunction(someClosure: )        }    }}let x = [1,2,3]x.someOtherFunction(someOtherClosure: { return 1 })

希望这有用!

总结

以上是内存溢出为你收集整理的解决Swift 3中的非转义闭包问题全部内容,希望文章能够帮你解决解决Swift 3中的非转义闭包问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

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

原文地址: http://outofmemory.cn/web/1012609.html

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

发表评论

登录后才能评论

评论列表(0条)

保存