В Swift 4.2 внесены изменения в реализацию Неявно развернутый необязательный (IUO) в соответствии с swift blog теперь неявно развернутый необязательно T! будет считаться T? with и extra, чтобы компилятор знал, что это неявная необязательная развёртка.
Вы должны принять во внимание новую ментальную модель для ННП! быть синонимом? с добавлением того, что он добавляет флаг в объявление, позволяющий компилятору знать, что объявленное значение может быть неявно развернуто.
Из-за этого изменения может возникнуть некоторая проблема совместимости исходного кода, которая может потребовать от вас изменения кода, прежде чем он будет успешно скомпилирован.
В Swift 3 объявления типа var a: Int? приведет к наличию типа Optional и таких объявлений, как var b: String! приведет к тому, что b будет иметь тип ImplicitlyUnwrappedOptional. Он изменился в Swift 4.2, поэтому он показывает ошибку для ObjectMapper для Xcode 10, который поставляется с Swift 4.2 и аналогичная реализация была сделана для 3. * для Xcode 10.
В библиотеке Objectmapper есть несколько объявлений функций, которые раньше показывали предупреждения для swift 4.1, а теперь отображаются как ошибки для swift 4.2. См. Изображение ниже для предупреждений в Xcode 9.4 и Swift 4.1.
![введите описание изображения здесь](https://i.stack.imgur.com/hMoSf.png)
Есть несколько запросов на вытягивание в репозитории ObjectMapper GitHub, который устранил проблему, но они ждут новая бета-версия Xcode согласно обсуждениям, поскольку в ней используется директива компилятора будет выпущена с новой бета-версией Xcode.
Обновление. Проблема устранена в версии ObjectMapper 3.3.0.
person
Suhit Patil
schedule
10.06.2018