swift3 – 隐式解包的选项数组在Xcode 8 beta 4中永远迭代

swift3 – 隐式解包的选项数组在Xcode 8 beta 4中永远迭代,第1张

概述我的代码(下面的片段)导致模拟器挂起. 我究竟做错了什么? 要重现问题,请剪切并粘贴到模拟器中. class INK{ var test = 1}var array = [INK!](repeating: nil, count: 1)for idx in 0..<array.count{ array[idx] = INK()}var idx2 = 0for i 我的代码(下面的片段)导致模拟器挂起.
我究竟做错了什么?

要重现问题,请剪切并粘贴到模拟器中.

class INK{    var test = 1}var array = [INK!](repeating: nil,count: 1)for IDx in 0..<array.count{    array[IDx] = INK()}var IDx2 = 0for ink_item in array{    IDx2 += 1    print("IDx2=\(IDx2)")}
这是一个已知的错误,请参阅 SR-1635.由于IUO是 no longer a distinct type,因此首先不可能有一个数组.

以下代码无法编译的事实证实了这一点:

// compiler error: Implicitly unwrapped optionals are only allowed at top level.// and as function resultsvar array: [Ink!] = []

(注意我将您的类名重命名为Ink以符合Swift命名约定)

根据您的具体情况,您可能需要考虑使用lazy property:

lazy var array : [Ink] = {    var array = [Ink]()    // populate array    return array}()

或者使数组本身成为一个隐式解包的可选项(并推迟数组的分配和初始化):

var array : [Ink]!

虽然注意到由于他们的inherent unsafety,IOOO应该永远是最后的手段.

总结

以上是内存溢出为你收集整理的swift3 – 隐式解包的选项数组在Xcode 8 beta 4中永远迭代全部内容,希望文章能够帮你解决swift3 – 隐式解包的选项数组在Xcode 8 beta 4中永远迭代所遇到的程序开发问题。

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

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

原文地址:https://54852.com/web/1037559.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存