Swift的新手。 Objective-C中initWithArray
上的NSMutableArray
是否有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)
答案 0 :(得分:1)
我认为您正在寻找的是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的init
文档页面上找到这些方法(第二种是Array
方法之一)。
<强>附录强>
根据评论,您有一个字典数组,只需将元素类型从String
更改为[String:String]
,所有使用的方法都是通用的(与元素类型无关)。在示例中,我还必须通过文字测试数据进行更改:
var tempArray = [[String:String]]()
let dataArray: [[String:String]] = [["a" : "A", "b" : "dict"], ["a" : "another", "b" : "dict"]]
tempArray.append(contentsOf: dataArray)
HTH