Функция расширения, запрашивающая тип возвращаемого значения вместо параметра

Я создаю расширение UIFont в Swift, которое будет возвращать собственный шрифт.

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, когда я использую функцию из расширения.

введите здесь описание изображения


person SleepNot    schedule 23.06.2015    source источник


Ответы (1)


museoSansRounded900 должен быть методом класса, поскольку вы пытаетесь вызвать его непосредственно в классе UIFont (что делает его в основном конструктором).

class func museoSansRounded900(size: CGFloat) -> UIFont ...
person Wain    schedule 23.06.2015