Swift 如何从两个数组创建结构?
我有Swift 如何从两个数组创建结构?,swift,data-structures,Swift,Data Structures,我有SearchViewController,我创建了“Data”类来加载SearchViewController //File.swift class Data { var add1: String var add2: String init(add1: String, add2: String) { self.add1 = add2 self.add1 = add2 }
SearchViewController
,我创建了“Data”类来加载SearchViewController
//File.swift
class Data {
var add1: String
var add2: String
init(add1: String, add2: String) {
self.add1 = add2
self.add1 = add2
}
}
//ViewController.swift
//This is the part that I want to load from two arrays of strings.
var entries = [Data]()
entries = [
Data(add1: "Canada", add2: "Ottawa"),
Data(add1: "USA", add2: "Washington"),
Data(add1: "Japan", add2: "Tokyo"),
Data(add1: "Denmark", add2: "Copenhagen")
]
搜索控制器数据列表的我的类继续。我将有大约1000个值。因此,我想从两个数组加载这个类,如下所示
let arr1: [String] = ["Canada", "USA", "Japan", "Denmark"]
let arr2: [String] = ["Ottawa", "Washington", "Tokyo", "Copenhagen"]
尝试迭代循环中的值,并将其附加到
条目
数组中
for i in 0..<arr1.count {
// create struct from array data
let data = Data(add1: arr1[i], add2: arr2[i])
// insert to your array
entries.append(data)
}
对于0中的i..尝试迭代循环中的值,并将其附加到条目
数组中
for i in 0..<arr1.count {
// create struct from array data
let data = Data(add1: arr1[i], add2: arr2[i])
// insert to your array
entries.append(data)
}
对于0中的i..您可以在此处使用函数zip
将两个数组组合成一个元组数组(字符串,字符串)
,然后将该序列映射成一个数据数组
let arr1 = ["Canada", "USA", "Japan", "Denmark"]
let arr2 = ["Ottawa", "Washington", "Tokyo", "Copenhagen"]
let data = zip(arr1, arr2).map { Data(add1: $0.0, add2: $0.1) }
for d in data { print("\(d.add1) - \(d.add2)") }
印刷品:
Canada - Ottawa
USA - Washington
Japan - Tokyo
Denmark - Copenhagen
我还建议您将类型数据
更改为结构
,而不是类
,如果您没有充分的理由将其更改为类,您可以在此处使用函数zip
将两个数组组合成元组数组(字符串,字符串)
然后将该序列映射到数据数组中
let arr1 = ["Canada", "USA", "Japan", "Denmark"]
let arr2 = ["Ottawa", "Washington", "Tokyo", "Copenhagen"]
let data = zip(arr1, arr2).map { Data(add1: $0.0, add2: $0.1) }
for d in data { print("\(d.add1) - \(d.add2)") }
印刷品:
Canada - Ottawa
USA - Washington
Japan - Tokyo
Denmark - Copenhagen
我还建议您将类型数据
更改为结构
,而不是类
,如果您没有充分的理由将其更改为类
,这种解决方案(循环)将在大阵列的情况下使iPhone的CPU过载。具有“zip”功能的更好解决方案。这种解决方案(循环)将在大阵列的情况下过载iPhone的CPU。具有“zip”功能的更好解决方案。