我正在学习Swift并在第一个XCode Beta上开发我的测试项目,但几天前我已经下载了 XCode Beta4 ,并且在构建时显示错误。
我的代码:
class LoginModalViewController: UIViewController {
@IBOutlet var usernameField : UITextField
@IBOutlet var passwordField : UITextField
@IBOutlet var loginButton : UIButton
...
以前我是如何在控制器中定义插件的,但在新的测试版中它给了我一个错误IBOutlet property has non-optional type UITextField
并建议我以两种方式解决它:
!
?
我知道?
表示可选,如果我选择它,那么我需要将usernameField.becomeFirstResponder()
之类的代码更新为usernameField!.becomeFirstResponder()
添加!
可以完美地解决错误..
据我所知,只有这两种方法可以在课堂上创建属性,对吗?
找到这种Swift语法语言更新的更新日志会很方便。
答案 0 :(得分:5)
实际上,像var usernameField : UITextField
这样的东西在Swift中是一个完全有效的属性声明,即使它没有被声明为可选的。在您的Swift版本中,您遇到的问题是使用@IBOutlet
注释的属性必须是可选项。
可以在Xcode 6测试版发行说明here中找到对Swift语言的更改。
另一方面,既然你提到你已经更新到Xcode Beta 4,我想指出在撰写本文时,Xcode Beta 5刚刚在2天前发布:)< / p>