如您所见。在标题中,我试图将文本字段的内容变成一个变量。我用过这个代码:
@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 ?? ""
}