尝试在游乐场中运行此代码时出现extraneous argument label 'contentsOf:' in call
array.append(contentsOf: test)
错误:
import Cocoa
var array:[Any] = []
let test = [""]
array.append(contentsOf: [""])
array.append(contentsOf: test)
为什么会这样?据我所知,有两个相等的数组,其中包含空字符串。
答案 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])