Передача функции с перегрузками не компилируется - PullRequest
0 голосов
/ 19 сентября 2018

Я пытаюсь передать функцию в замыкание или другую функцию, но есть перегрузки, которые мешают компиляции из-за неоднозначности.Мне интересно, можно ли это на самом деле сделать?

Вот простой пример того, чего я пытаюсь достичь -

let closure: (UILabel, String, ((CGFloat) -> (UIFont))) -> () = { (label, text, createFont) in
    label.text = text
    label.font = createFont(20)
}

let systemFont = UIFont.systemFont  // won't compile - Ambiguous use of 'systemFont'
let boldSystemFont = UIFont.boldSystemFont // this is fine, no overloads

closure(myLabel, "Some text", systemFont)
closure(myOtherLabel, "More text", boldSystemFont)

Есть ли способ указать, какую перегрузку я хочу?Никакие поиски в SO или Google не смогли ответить на этот вопрос за меня.

1 Ответ

0 голосов
/ 19 сентября 2018

Возможно, вы имеете в виду:

    let systemFont = UIFont.systemFont(ofSize:)
...