预期 return 'UIFont?' 的函数中缺少 return
Missing return in a function expected to return 'UIFont?'
我在 swift 中有一个名为 COSTextField 的自定义 UITextfield。有点像
class COSTextField: UITextField {
func customFont() -> UIFont? {
if let font = self.font {
return UIFont(name: kCOSFontRegular, size: font.pointSize)
}
}
}
我正在尝试扩展此 COSTextField class 并覆盖 customFont 方法。我的新 class 看起来像
class COSTextFieldLight: COSTextField {
override func customFont() -> UIFont? {
if let font = self.font {
return UIFont(name: kCOSFontLight, size: font.pointSize)
}
}
}
当我尝试编译它时,出现错误 Missing return in a function expected to return 'UIFont?'
。如果我在覆盖函数的末尾添加一个 return nil 语句,我会得到一个错误 Non-void function should return a value
我做错了什么?
在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
}
}
这样,如果 if let
条件失败,您的函数将 return nil。
我在 swift 中有一个名为 COSTextField 的自定义 UITextfield。有点像
class COSTextField: UITextField {
func customFont() -> UIFont? {
if let font = self.font {
return UIFont(name: kCOSFontRegular, size: font.pointSize)
}
}
}
我正在尝试扩展此 COSTextField class 并覆盖 customFont 方法。我的新 class 看起来像
class COSTextFieldLight: COSTextField {
override func customFont() -> UIFont? {
if let font = self.font {
return UIFont(name: kCOSFontLight, size: font.pointSize)
}
}
}
当我尝试编译它时,出现错误 Missing return in a function expected to return 'UIFont?'
。如果我在覆盖函数的末尾添加一个 return nil 语句,我会得到一个错误 Non-void function should return a value
我做错了什么?
在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
}
}
这样,如果 if let
条件失败,您的函数将 return nil。