gpt4 book ai didi

swift3 - 这是测试字段是否为空的正确方法吗?

转载 作者:行者123 更新时间:2023-12-01 01:47:45 25 4
gpt4 key购买 nike

这是在函数内部,因此任何作为参数传递的 textField 都可以响应方法 checkForEmptyFields :

textField.addTarget(self, action: #selector(checkForEmptyFields(sender:)), 
for: UIControlEvents.editingChanged)

这是方法 checkForEmptyFields :
 func checkForEmptyFields(sender:UITextField){

self.loginButton.isEnabled = (sender.text?.trim().isEmpty)! == false

}

这是用于管理修剪的 String 的简单扩展:
extension String
{
func trim() -> String
{
return self.trimmingCharacters(in: NSCharacterSet.whitespacesAndNewlines)
}
}

一切似乎都很好,但我想知道这是否是正确的继续方式,以及我是否忘记了一些重要的事情(或者我犯了任何错误)。谢谢!

最佳答案

确保文本不为零可能会更安全。

func checkForEmptyFields(sender: UITextField) {
let isTextEmpty = sender.text?.trim().isEmpty ?? true
self.loginButton.isEnabled = !isTextEmpty
}

不过,您的整体方法似乎很好。

正如@matt 在评论中所建议的那样,可以将此行为的一部分封装到 UITextField 上的扩展中。 .
extension UITextField {
var isEmpty: Bool {
return self.text?.trim().isEmpty ?? true
}
}

您的功能可以简化为:
func checkForEmptyFields(sender: UITextField) {
self.loginButton.isEnabled = !sender.isEmpty
}

旁注:您的扩展程序的“Swiftier”名称是 trimmed() ,因为它正在返回一个新的 String实例。这符合 Swift API Design Guidelines .

关于swift3 - 这是测试字段是否为空的正确方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47355001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com