web-dev-qa-db-ja.com

Swiftで他の配列に配列を追加しようとするときに「余分な引数ラベル」を取得する

遊び場でこのコードを実行しようとすると、extraneous argument label 'contentsOf:' in call array.append(contentsOf: test)エラーが発生します。

import Cocoa

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

なぜこうなった?私が理解しているように、空の文字列を持つ2つの等しい配列があります。

15

コメントで特定の質問に答えるには、キャストする必要があるので、Swiftはあなたが知っていることを知っています。この場合、SKShapeNodeSKNode申し分なく、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])
22
Ryan Poolos