Swift - 在类中定义属性

时间:2014-08-06 14:42:36

标签: ios xcode swift var iboutlet

我正在学习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并建议我以两种方式解决它:

  • 在每个var之后添加!
  • 在每个var之后添加?

我知道?表示可选,如果我选择它,那么我需要将usernameField.becomeFirstResponder()之类的代码更新为usernameField!.becomeFirstResponder()

添加!可以完美地解决错误..

据我所知,只有这两种方法可以在课堂上创建属性,对吗?

找到这种Swift语法语言更新的更新日志会很方便。

1 个答案:

答案 0 :(得分:5)

实际上,像var usernameField : UITextField这样的东西在Swift中是一个完全有效的属性声明,即使它没有被声明为可选的。在您的Swift版本中,您遇到的问题是使用@IBOutlet注释的属性必须是可选项。

可以在Xcode 6测试版发行说明here中找到对Swift语言的更改。

另一方面,既然你提到你已经更新到Xcode Beta 4,我想指出在撰写本文时,Xcode Beta 5刚刚在2天前发布:)< / p>