在声明IBOutlet时使用typealias

时间:2017-02-02 05:42:03

标签: ios swift iboutlet

出于教学目的,我希望能够在学生的第一项任务中隐藏选项的复杂性(我将在下面的课程中解释)。但是,我也希望他们使用界面并连接函数和变量。

我要做的是以下内容:

typealias TextField = UITextField!

然后我试图这样做:

@IBOutlet var newShipCaptainName: TextField

这只是部分有效。我可以在故事板中看到它,如果我拖动UITextField并将其类更改为Textfield,我可以连接它没问题。

但是,编译失败并显示错误:

Class ViewController has no initializers

我理解。编译器认为TextField是一个非可选变量,它不能是IBOutlet。但是,TextFieldUITextfield!,所以我不确定我做错了什么。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

显然,隐式展开的可选项的类型别名被视为非可选,因此您必须显式添加感叹号:

@IBOutlet var newShipCaptainName: TextField!