Я пытаюсь передать функцию другой функции, а затем передать переданную функцию, передав ей переменную.
Вот мой код:
func showStandardPrompt(prompt:String,view: UIViewController,numberInput: Bool, callback: (()->(String))?) {
let alert = UIAlertController(title: "Input Data", message: prompt, preferredStyle: .Alert)
alert.addTextFieldWithConfigurationHandler { (textField) in
if numberInput {
textField.keyboardType = .NumberPad
}
}
let OKAction = UIAlertAction(title: "OK", style: .Default) { (action) in
let field = alert.textFields![0] as UITextField
callback?(field.text!)
}
alert.addAction(OKAction)
let CancelAction = UIAlertAction(title: "Cancel", style: .Default, handler: nil)
alert.addAction(CancelAction)
view.presentViewController(alert,animated: true, completion: nil)
}
Ошибка, которую я получаю,
callback?(field.text!)
Ошибка: "Невозможно преобразовать тип значения" String "в ожидаемый тип аргумента"() ". Я знаю, что это вопрос синтаксиса - просто не знаю, каким он должен быть.