Ответ 1
В Swift 4.2 происходит изменение в реализации Implicitly Unwrapped Optional (IUO), согласно быстрому блогу теперь подразумевается развернутый дополнительный T! будет рассматриваться как T? с и дополнительным флагом для компилятора, чтобы знать, что это неявное разворачивание необязательно.
Новая ментальная модель для IUO - это та, где вы считаете! быть синонимом? с добавлением, что он добавляет флаг в объявление, позволяя компилятору знать, что объявленное значение может быть неявно разворачиваться.
Из-за этого изменения может возникнуть проблема с совместимостью с исходным кодом, которая может потребовать изменения кода перед его компиляцией.
В Swift 3 объявления типа var a: Int? приведет к наличию типа "Необязательно" и деклараций типа var b: String! приведет к тому, что b будет иметь тип ImplicitlyUnwrappedOptional. Он изменился в Swift 4.2, следовательно, появилась ошибка для ObjectMapper для Xcode 10, которая поставляется с быстрым 4.2, и аналогичная реализация была выполнена для 3. * для Xcode 10.
В библиотеке Objectmapper есть некоторые декларации функций, которые ранее показывали предупреждения для swift 4.1, теперь показывающие как ошибку для swift 4.2. Обратитесь к приведенному ниже изображению для предупреждений в Xcode 9.4 и быстрой версии 4.1
В репозитории ObjectMapper GitHub есть несколько запросов на загрузку, которые исправили проблему, но они ждут новой версии бета-версии Xcode в соответствии с обсуждениями, поскольку она использует функцию- совместитель, которая была недавно принята, будет выпущена с новой бета-версией Xcode.