在Swift中编码相对较新,而且我正在使用我的第一个应用程序,然而,这个问题完全困扰着我,我不知道为什么。
为什么我不能引用InputTextField.text属性?
//: A UIKit based Playground for presenting user interface
import UIKit
import PlaygroundSupport
class MyViewController : UIViewController {
override func loadView() {
setupInputView()
}
func setupInputView () {
let InputTextField = UITextField()
InputTextField.text = "Some Text"
view.addSubview(InputTextField)
}
}
// Present the view controller in the Live View window
PlaygroundPage.current.liveView = MyViewController()
print("InputTextField: \(InputTextField.text)")
发布于 2017-11-24 19:34:11
InputTextField已在函数setupInputView()中声明。它只能在该函数中访问。移动声明
let InputTextField = UITextField()
在功能之外。然后,它将成为类MyViewController的成员。在该类之外,您可以按以下方式访问
PlaygroundPage.current.liveView.InputTextField
继续之前,先阅读范围和变量声明。
发布于 2017-11-24 20:12:22
代码的问题是,您正在函数中设置textField。因此,textField变量有一个本地作用域,它在myViewController实例中变得不可访问。因此,首先,您必须将textField作为一个全局变量。请看下面的代码片段-
class MyViewController : UIViewController {
let inputTextField = UITextField()
override func loadView() {
inputTextField.text = "some text"
}
}
let myViewController = MyViewController()
PlaygroundPage.current.liveView = myViewController
print("TextFieldValue: \(myViewController.inputTextField.text!)")
请记住变量命名约定的一件事,它总是以小写字母开头,然后遵循camelCasing。
https://stackoverflow.com/questions/47479040
复制相似问题