Swift4 initWithArray 等价物

Swift4 initWithArray equivalent

Swift 的新手。在 Objective-C 中的 NSMutableArray 上是否有 initWithArray 的 Swift 等效函数?

我在 Obj-C 中有以下代码

 tempArray = [[NSMutableArray alloc] initWithArray:dataArray];

我正在尝试在 Swift

中使用以下内容
var tempArray = [[[String:String]]]()
var dataArray: [[String: String]]
tempArray.append(dataArray)

问题是 tempArray 的计数为 1(这在逻辑上似乎是正确的)。我想要做的就是将 dataArray 添加到 tempArray,它是一个包含字典对象的数组。如果可能的话,我想使用原生 Swift 数组。

编辑: 按照建议进行更改后,出现以下错误:

Cannot convert value of type [[String:String]] to expected argument type[String:String]

var tempArray = [[String:String]]()

    var dataArray: [[String: String]] =

        [["name": "John", "Address": "XYZ"],
         ["name": "Doe",  "Address": "ABC"]]

tempArray.append(dataArray)

我想你要找的是 append(contentsOf:)。您还使用了字典类型 (String:String) 而不是数组类型。请尝试以下操作:

var tempArray = [String]()
let dataArray: [String] = ["An", "array", "of", "String"] // just an example
tempArray.append(contentsOf: dataArray)

更接近您的 Objective-C 可能是:

let dataArray: [String] = ["An", "array", "of", "String"]
var tempArray = [String](dataArray)

您可以在 Xcode 中的 Array 文档页面上找到这些方法(第二种是 init 方法之一)。

附录

根据评论你有一个字典数组,只需将元素类型从 String 更改为 [String:String],所有使用的方法都是通用的(独立于元素类型)。在示例中,我也必须通过文字测试数据进行更改:

var tempArray = [[String:String]]()
let dataArray: [[String:String]] = [["a" : "A", "b" : "dict"], ["a" : "another", "b" : "dict"]]
tempArray.append(contentsOf: dataArray)

HTH