获得"无关的参数标签"当试图将数组追加到Swift中的其他数组时

时间:2017-04-18 23:11:49

标签: arrays swift compiler-errors append

尝试在游乐场中运行此代码时出现extraneous argument label 'contentsOf:' in call array.append(contentsOf: test)错误:

import Cocoa

var array:[Any] = []
let test = [""]
array.append(contentsOf: [""])
array.append(contentsOf: test)

为什么会这样?据我所知,有两个相等的数组,其中包含空字符串。

1 个答案:

答案 0 :(得分:21)

要在评论中回答您的具体问题,在这种情况下您只需要施放,以便Swift知道您已经知道。在这种情况下,由于SKShapeNode向下转换为SKNode就好了,您可以使用as投射。如果您正在进行可能失败的演员表,则需要使用as?并安全地打开以确保。

var allNodes: [SKNode] = []
let onlyShapeNodes: [SKShapeNode] = []

allNodes.append(contentsOf: onlyShapeNodes as [SKNode])

对于原始的通用示例,这也可以。

var array: [Any] = []
let test = ["", ""]

array.append(contentsOf: [""] as [Any])
array.append(contentsOf: test as [Any])