斯威夫特的新手。目标C中的initWithArray在NSMutableArray上有一个Swift等价函数吗?
我在Obj中有以下代码
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)发布于 2017-06-18 23:00:09
我认为你要找的是append(contentsOf:)。您还使用字典类型(String:String)而不是数组类型。尝试以下几点:
var tempArray = [String]()
let dataArray: [String] = ["An", "array", "of", "String"] // just an example
tempArray.append(contentsOf: dataArray)更接近你的目标-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
https://stackoverflow.com/questions/44617462
复制相似问题