Я пытаюсь передать функцию в замыкание или другую функцию, но есть перегрузки, которые мешают компиляции из-за неоднозначности.Мне интересно, можно ли это на самом деле сделать?
Вот простой пример того, чего я пытаюсь достичь -
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 не смогли ответить на этот вопрос за меня.