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

标签 ios swift xcode

从中可以看出。标题,我正在尝试将文本字段的内容转换为变量。我用过这段代码:

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

更新:我用上面插入的新代码创建了一个新项目。我得到的唯一错误是:不能在属性初始化程序中使用实例成员“TextField”;属性初始化程序在 'self' 可用之前运行。

最佳答案

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

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

如果你想要variable成为存储属性(property) , 这里存储 textfield.text 的值在您实例化 variable 的那一刻,那么您的代码中的问题是 textfield.text可以是nil ,因此您最好将其处理为:

let variable = textfield.text ?? ""

如果你想要variable成为计算属性 ,在这种情况下,每次您尝试访问 variable并获取它的值,它将根据闭包中的代码计算它,因此它将获取最新的 textfield.text每次尝试获取 variable 时的值(value)值(value):
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 ?? ""
}

关于ios - 如何将文本字段的内容转换为 Xcode 11 (swift) 中的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60836461/

相关文章:

ios - XCode 没有正确加载库

ios - UITableView.visibleCells.contains(JDHeaderTableViewCell()) 总是返回 false

iOS 9 : get CNContact country code and phone number

iphone - 使用 CLGeocoder 将 NSString 纬度/经度坐标转换为城市、州和时区

ios - XCode 9.1 Hang on load Storyboard Signing 产品问题

iphone - 使用对象子类的属性

ios - 为 MDM 部署准备店内应用程序

ios - 是否可以在 UITableViewHeaderFooterView 中使用多行文本标签(不使用自定义 UILabel)?

ios - 如何使堆栈 View 或容器 View 包装内容?

ios - 如何向 UIAlertController 添加操作并获取操作结果 (Swift)