出于教学目的,我希望能够在学生的第一个任务中隐藏 optional 的复杂性(我将在接下来的类(class)中对此进行解释)。但是,我也希望他们使用界面并连接函数和变量。
我想做的是:
typealias TextField = UITextField!
然后我想做的是:
@IBOutlet var newShipCaptainName: TextField
这只是部分工作。我可以在 Storyboard中看到它,如果我拖动一个 UITextField 并将其类更改为 Textfield,我可以毫无问题地连接它。
但是,编译失败并出现错误:
ViewController 类没有初始化器
我明白了。编译器认为 TextField 是一个非可选变量,它不能是 IBOutlet。然而,TextField
是一个 UITextfield!
,所以我不确定我做错了什么。
有什么想法吗?
最佳答案
显然,隐式解包可选的类型别名被视为非可选,因此您必须显式添加感叹号:
@IBOutlet var newShipCaptainName: TextField!
关于ios - 声明 IBOutlet 时使用类型别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41994958/