出于教学目的,我希望能够在学生的第一项任务中隐藏选项的复杂性(我将在下面的课程中解释)。但是,我也希望他们使用界面并连接函数和变量。
我要做的是以下内容:
typealias TextField = UITextField!
然后我试图这样做:
@IBOutlet var newShipCaptainName: TextField
这只是部分有效。我可以在故事板中看到它,如果我拖动UITextField并将其类更改为Textfield,我可以连接它没问题。
但是,编译失败并显示错误:
Class ViewController has no initializers
我理解。编译器认为TextField是一个非可选变量,它不能是IBOutlet。但是,TextField
是UITextfield!
,所以我不确定我做错了什么。
有什么想法吗?
答案 0 :(得分:2)
显然,隐式展开的可选项的类型别名被视为非可选,因此您必须显式添加感叹号:
@IBOutlet var newShipCaptainName: TextField!