У меня есть странный материал: попытка отслеживать отмену действия акции в обработчике UIAlertAction с помощью пакета FLurry Analytics SDK. Код должен в основном выглядеть:Swift - ошибка обработчика действий при действии
let cancelAction = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel, handler: {
(action:UIAlertAction!) -> Void in
Flurry.logEvent("Share Cancelled")
}
)
Но компилятор выдает ошибку «Extra аргумент„название“в вызове ...» и основные моменты «Отмена» в красном цвете. Хотя если я добавлю какое-либо объявление переменной или простую функцию типа println(), то нет ошибки! т.е. этот код составлен правильно и считается выполненным:
let cancelAction = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel, handler: {
(action:UIAlertAction!) -> Void in
let somevar = 0
Flurry.logEvent("Share Cancelled")
}
)
Неужели кто-нибудь сталкивался с такой вещью? Может быть, это ошибка Swift или Flurry?
У Swift есть ужасная отчетность об ошибках, но он может попытаться вывести тип возврата из одного замыкания строки. Проверьте возвращаемый тип logEvent, чтобы убедиться, что он недействителен, поскольку (я предполагаю) UIAlertView ожидает закрытия, возвращающего Void. Ваша точка остается, хотя, об ошибке, вводящей в заблуждение. Обычный способ исправить это (если моя предпосылка верна), заключается в том, чтобы добавить один возврат строки в последнюю строку. –
Ничего себе, даже не мог подумать об этом ... Но возвращаемый тип logEvent действительно не пусто. Таким образом, возврат одной строки (без возврата любого действительного значения) работает очень хорошо. Большое спасибо! –