如何安全地使用可选绑定
How do it safely with optional bindings
毕竟很长一段时间后,我构建了 makeResult
以在 label
中显示,但问题是这里的代码太多了。我怎样才能减少代码? .
@IBAction func value_Array(_ sender: AnyObject) {
var hobbies = [String]()
// print(jsondata["hobbies"])
hobbies = jsondata["hobbies"] as! [String]
var makeResult : String?
for (index, value) in hobbies.enumerated(){
print(value)
makeResult = (makeResult != nil ? "\(makeResult!) \n" : "") + " your \(index+ 1) is \(value)"
}
outputResult.text = makeResult != nil ? makeResult : " "
}
注意:因为我必须打开 hobbies
无论如何如何使用可选绑定安全地进行它。
这可能不会更小,但更安全。如果没有爱好数据,这不会崩溃。
@IBAction func value_Array(_ sender: AnyObject) {
guard
let hobbies = jsondata["hobbies"] as? [String],
hobbies.count > 0
else {
outputResult.text = " "
return
}
var index = 0
outputResult.text = hobbies.reduce("") {
index += 1
return [=10=] + ([=10=].isEmpty ? "" : " \n") + " your \(index) is \()"
}
}
使用内部 index
变量的另一种方法是先将索引和爱好压缩到一个元组中。但这使得字符串创建行更加复杂;你的选择。
@IBAction func value_Array(_ sender: AnyObject) {
guard
let hobbies = jsondata["hobbies"] as? [String],
hobbies.count > 0
else {
outputResult.text = " "
return
}
outputResult.text = zip([1...hobbies.count], hobbies).reduce("") {
return [=11=] + ([=11=].isEmpty ? "" : " \n") + " your \(.0) is \(.1)"
}
}
我认为这可以安全、简洁地满足您的需求。
@IBAction func value_Array(_ sender: AnyObject) {
guard let hobbies = jsondata["hobbies"] as? [String] else {
outputResult.text = ""
return
}
outputResult.text = hobbies.enumerated().map { index, element in
return " your \(index + 1) is \(element)"
}.joined(separator: " \n")
}
毕竟很长一段时间后,我构建了 makeResult
以在 label
中显示,但问题是这里的代码太多了。我怎样才能减少代码? .
@IBAction func value_Array(_ sender: AnyObject) {
var hobbies = [String]()
// print(jsondata["hobbies"])
hobbies = jsondata["hobbies"] as! [String]
var makeResult : String?
for (index, value) in hobbies.enumerated(){
print(value)
makeResult = (makeResult != nil ? "\(makeResult!) \n" : "") + " your \(index+ 1) is \(value)"
}
outputResult.text = makeResult != nil ? makeResult : " "
}
注意:因为我必须打开 hobbies
无论如何如何使用可选绑定安全地进行它。
这可能不会更小,但更安全。如果没有爱好数据,这不会崩溃。
@IBAction func value_Array(_ sender: AnyObject) {
guard
let hobbies = jsondata["hobbies"] as? [String],
hobbies.count > 0
else {
outputResult.text = " "
return
}
var index = 0
outputResult.text = hobbies.reduce("") {
index += 1
return [=10=] + ([=10=].isEmpty ? "" : " \n") + " your \(index) is \()"
}
}
使用内部 index
变量的另一种方法是先将索引和爱好压缩到一个元组中。但这使得字符串创建行更加复杂;你的选择。
@IBAction func value_Array(_ sender: AnyObject) {
guard
let hobbies = jsondata["hobbies"] as? [String],
hobbies.count > 0
else {
outputResult.text = " "
return
}
outputResult.text = zip([1...hobbies.count], hobbies).reduce("") {
return [=11=] + ([=11=].isEmpty ? "" : " \n") + " your \(.0) is \(.1)"
}
}
我认为这可以安全、简洁地满足您的需求。
@IBAction func value_Array(_ sender: AnyObject) {
guard let hobbies = jsondata["hobbies"] as? [String] else {
outputResult.text = ""
return
}
outputResult.text = hobbies.enumerated().map { index, element in
return " your \(index + 1) is \(element)"
}.joined(separator: " \n")
}