在 Swift 中,我试图创建一个包含 64 个 SKSpriteNode 的数组。我想首先将其初始化为空,然后将精灵放入前 16 个单元格和最后 16 个单元格中(模拟国际象棋游戏)。
根据我在文档中的理解,我希望得到类似的结果:
var sprites = SKSpriteNode()[64];
or
var sprites4 : SKSpriteNode[64];
但这不起作用。
在第二种情况下,我收到一条错误消息:“尚不支持固定长度数组”。这是真的吗?对我来说,这听起来像是一个基本功能。
我需要通过索引直接访问元素。
尚不支持固定长度数组。这实际上意味着什么?并不是说你不能创建一个数组n
很多事情——显然你可以做let a = [ 1, 2, 3 ]
得到一个包含三个的数组Int
s。这意味着数组大小不是您可以声明的作为类型信息.
如果你想要一个数组nil
s,您首先需要一个可选类型的数组 -[SKSpriteNode?]
, not [SKSpriteNode]
— 如果你声明一个非可选类型的变量,无论它是数组还是单个值,它都不能nil
。 (另请注意[SKSpriteNode?]
不同于[SKSpriteNode]?
...你想要一个可选数组,而不是一个可选数组。)
Swift 在设计上非常明确地要求初始化变量,因为对未初始化引用内容的假设是 C(和其他一些语言)程序可能出现错误的原因之一。因此,您需要明确要求[SKSpriteNode?]
包含 64 的数组nil
s:
var sprites = [SKSpriteNode?](repeating: nil, count: 64)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)