扩展函数要求返回类型而不是参数

时间:2015-06-23 08:54:16

标签: swift uifont swift-extensions

我在Swift中创建了一个UIFont的扩展,它将返回一个自定义字体。

import UIKit

extension UIFont {
  func museoSansRounded900(size: CGFloat) -> UIFont {
    return UIFont(name: "MuseoSansRounded900", size: size)!
  }
}

但是,当我使用扩展程序self.titleLabel?.font = UIFont.museoSansRounded900(15.0)时,Xcode会在设计时返回错误'(CGFloat) -> UIFont' is not convertible to 'UIFont'

我做错了吗?当我使用扩展中的函数时,Xcode实际上要求UIFont作为参数而不是CGFloat。

enter image description here

1 个答案:

答案 0 :(得分:2)

museoSansRounded900应该是一个类方法,因为你试图直接在UIFont类上调用它(这使它基本上成为一个构造函数)。

class func museoSansRounded900(size: CGFloat) -> UIFont ...