Mar*_*rta 0 string if-statement textfield ios swift
我有 2 个带有表示 URL 的字符串的文本字段。如果 textfield 为空,则保存自定义字符串(“无链接 A”),如果填充,则需要有效,否则显示警报。
有没有更简洁的方法来做到这一点,而不是使用这么多的“if 语句”?
linkA = linkATextField.text
linkB = linkBTextField.text
@IBAction func doneButton(_ sender: Any) {
if linkA.isEmpty && linkB.isEmpty {
linkA = "no link A"
linkB = "no link B"
saveData()
} else {
if linkA.isEmpty == false && linkB.isEmpty == false {
if linkA.isValidURL && linkB.isValidURL {
saveData()
} else {
showErrorAlert()
}
}
if linkA.isEmpty && linkB.isEmpty == false {
linkA = "no link A"
if linkB.isValidURL {
saveData()
} else {
showErrorAlert()
}
}
if linkA.isEmpty == false && linkB.isEmpty {
linkB = "no link B"
if linkA.isValidURL {
saveData()
} else {
showErrorAlert()
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
或者你可以使用 Switch case ,试试这个
@IBAction func doneButton(_ sender: Any){
switch (linkA.isEmpty, linkB.isEmpty) {
case (true, true):
// no link A, B
saveData()
break
case (false, false):
// no link A, B
if linkA.isValidURL, linkB.isValidURL {
saveData()
}else { showErrorAlert() }
break
case (true, false):
// no link A
linkB.isValidURL ? saveData() : showErrorAlert()
break
case (false, true):
// no link B
linkA.isValidURL ? saveData() : showErrorAlert()
break
default:
showErrorAlert()
break
}
}
Run Code Online (Sandbox Code Playgroud)