gpt4 book ai didi

arrays - Swift4 initWithArray 等价物

转载 作者:行者123 更新时间:2023-11-28 15:32:35 26 4
gpt4 key购买 nike

Swift 新手。在 Objective-C 的 NSMutableArray 上是否有一个 Swift 等价于 initWithArray 的函数?

我在 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

关于arrays - Swift4 initWithArray 等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44617462/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com