После обновления до Xcode 9.3 (который использует Swift 4.1) была обнаружена следующая проблема:
Создайте пустой проект, добавьте к нему новый файл .swift и создайте два новых класса:
class CodableOne: Codable { let some: String } class CodableTwo: Codable { var some: String }
Сборка завершена
Добавьте новую константу в
CodableOne
типаCodableTwo
:class CodableOne: Codable { let some: String let another: CodableTwo } class CodableTwo: Codable { var some: String }
Сборка завершена
Теперь переместите класс
CodableTwo
в другой файл (например, ViewController.swift).Сбой сборки.
Теперь есть ошибка, которая никуда не делась. Codable
классы не должны требовать инициализаторов (как показано на предыдущих шагах).
Будем очень признательны за любые идеи о том, в чем может быть проблема и как ее можно решить!
P.S. Проблема отсутствует в Xcode 9.2. Ни очистка пути проекта / сборки, ни повторная установка Xcode 9.3 не помогает.
Whole module
не помогает. Но изменение порядка файлов вCompile Source
устранило проблему. Любые идеи о лучшем подходе будут оценены. - person Andrew   schedule 02.04.2018Whole Module
, это упоминается в отчете об ошибке. Проголосуйте за проблему на bugs.swift.org/browse/SR-7315 - person EBDOKUM   schedule 02.04.2018Compile Source
(произвольно для затронутых файлов) будет работать. - person Caio   schedule 06.04.2018