Сегодня я обновил Xcode до 10.2 и получил следующие ошибки:
Метод не может быть помечен @objc, потому что тип параметра 2 не может быть представлен в Objective-C.
Типы функций не могут быть представлены в Objective-C, если их параметры и возвращаемые значения не могут быть. Я не понимаю, почему
В 10.1 все было нормально. Это пример, который я использую в течение многих лет без каких-либо проблем. Как я могу заставить этот код компилироваться без ошибок?
@objc public func myFunction(inputString: String, handler:@escaping ((success: Bool, outPut: NSArray)) -> Void) {
// do stuff
}
handler:@escaping (success: Bool, outPut: NSArray) -> Void
, вы получите четкое сообщение об ошибке «Типы функций не могут иметь меток аргументов; используйте '_' перед 'outPut'” уже в Swift 4/Xcode 10.1. — Так что изменились не запрещенные имена внешних параметров (они уже запрещены в Swift 4), а то, как компилятор обрабатывает лишнюю пару скобок. - person Martin R   schedule 27.03.2019