如何在Xcode 11中将文本字段的内容转换为变量(swift)



如您所见。在标题中,我试图将文本字段的内容变成一个变量。我用过这个代码:

@IBOutlet weak var TextField: UITextField!
let variable = TextField.text

更新:我用上面插入的新代码创建了一个新项目。我得到的唯一错误是:无法在属性初始值设定项中使用实例成员"TextField";属性初始值设定项在"self"可用之前运行。

更新:我认为您遇到了与您提到的问题不同的问题,在您的答案更改了几次之后,我理解您希望使用UITextField的值来加载WebView URL,并在以后的不同状态下检查前缀。但您实际上是在viewDidLoad上加载网络视图,这对您来说不起作用,因为您还没有机会从手机/模拟器手动更改UITextField值。

这意味着可能有不同的工作案例场景和流程,您可能需要思考和实现哪一个最适合您的业务需求。现在,如果你想把UITextField的值存储在一个变量中,并访问它的最新值或第一个值,你可以按照我最初的答案:

如果您希望variable是一个存储的属性,在这里您在实例化variable的确切时刻存储textfield.text的值,那么代码中的问题是textfield.text可以是nil。因此您最好将其处理为:

let variable = textfield.text ?? ""

如果您希望variable是一个计算属性,在这种情况下,每次尝试访问variable并获取其值时,它都会根据其闭包中的代码进行计算,因此每次尝试获取variable值时,都会获取最新的textfield.text值:

var variable: String? { // optional, remember textfield.text can return nil
return textfield.text
}

如果你总是想返回一些东西,你可以用这种方式声明它,并在textfield.text为nil的情况下返回一个空字符串(请记住,textfield.text可以是nil(:

var variable: String { // not optional, you give a "" default value if nil
return textfield.text ?? ""
}

最新更新