Tru*_*an1 5 loops ios swift swift2
我正在尝试UIPickerView使用静态变量填充选项。有没有更快速的方法来创建公制高度列表而不是for循环?
这是我得到的:
static var heightMetric: [(key: String, value: String)] {
var items: (key: String, value: String) = []
for item in 30...330 {
items.append(("\(item)", "\(item) cm"))
}
return items
}
Run Code Online (Sandbox Code Playgroud)
对于英制形式,有什么好办法可以5' 8"以填充UIPickerView?的格式创建选项列表。
实际上不需要 for 循环:
static var heightMetric: [(key: String, value: String)] = {
return (30...330).map {
("\($0)", "\($0) cm")
}
}()
Run Code Online (Sandbox Code Playgroud)
您甚至可以删除显式类型并简单地编写 static var heightMetric = { ...
关于英尺和英寸形式,我不知道有任何内置功能。您要么必须通过做一点数学计算基于厘米值计算该值,要么创建一个map类似于上面的值,您可以使用%运算符将数字拆分为英尺和英寸。例如:
static var heightMetricImperial = {
return (12...120).map {
("\($0)", "\($0 / 12)' \($0 % 12)\"")
}
}()
Run Code Online (Sandbox Code Playgroud)
完整示例:
class K {
static var heightMetric = {
(30...330).map {
("\($0)", "\($0) cm")
}
}()
static var heightMetricImperial = {
(12...120).map {
("\($0)", "\($0 / 12)' \($0 % 12)\"")
}
}()
}
print(K.heightMetric)
print(K.heightMetricImperial)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
592 次 |
| 最近记录: |