[英]Missing return in a function expected to return 'UIFont?'
I have a custom UITextfield in swift called COSTextField. 我在swift中有一个名为COSTextField的自定义UITextfield。 It is something like
它就像是
class COSTextField: UITextField {
func customFont() -> UIFont? {
if let font = self.font {
return UIFont(name: kCOSFontRegular, size: font.pointSize)
}
}
}
I am trying to extend this COSTextField class and override the customFont method. 我试图扩展此COSTextField类并覆盖customFont方法。 My new class looks like
我的新课看起来像
class COSTextFieldLight: COSTextField {
override func customFont() -> UIFont? {
if let font = self.font {
return UIFont(name: kCOSFontLight, size: font.pointSize)
}
}
}
When I try to compile this, I get an error Missing return in a function expected to return 'UIFont?'
当我尝试编译它时,我得到一个错误
Missing return in a function expected to return 'UIFont?'
. 。 If I add a return nil statement at the end of my override function, I get an error
Non-void function should return a value
如果我在覆盖函数的末尾添加一个返回nil语句,我得到一个错误
Non-void function should return a value
What am I doing wrong? 我究竟做错了什么?
Add return nil
just after the if let
branch: 在
if let
分支之后添加return nil
:
class COSTextField: UITextField {
func customFont() -> UIFont? {
if let font = self.font {
return UIFont(name: kCOSFontRegular, size: font.pointSize)
}
return nil
}
}
class COSTextFieldLight: COSTextField {
override func customFont() -> UIFont? {
if let font = self.font {
return UIFont(name: kCOSFontLight, size: font.pointSize)
}
return nil
}
}
That way, if the if let
condition fails, your function will return nil. 这样,如果
if let
条件失败,你的函数将返回nil。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.