
我究竟做错了什么?
要重现问题,请剪切并粘贴到模拟器中.
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中永远迭代所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)