Ошибка компилятора XCode не выделена в редакторе
Xcode начал отображать ошибку компилятора, как только я открываю свой проект (т.е. сборка не требуется), но все это немного странно. Одна ошибка отображается во вкладке времени сборки, но когда я открываю окно сообщения компилятора, появляются три идентичные ошибки, распределенные по нескольким файлам. Ошибки не выделяются в окне редактора, поэтому я не могу их отследить, но, поскольку они отмечены в файлах, к которым я недавно не прикасался, я подозревал, что проблема была в Xcode, а не в моем коде.
Ошибка отображается во временном окне сборки как:
Swift Compiler Error - cannot convert value of type '()' to closure result type 'Observable<Void>'
В окне сообщений:
<unknown>:0: error: cannot convert value of type '()' to closure result type 'Observable<Void>'
Эти ошибки распределяются по трем файлам в окне сообщений, каждый из которых использует, по крайней мере, одну зависимость RxSwift (RxDataSources, RxSwift и RxCocoa), и, как отмечалось выше, я не затрагивал пару из них в течение недели или двух, и мои зависимости не были недавно изменены, поэтому я могу быть уверен, что они не являются проблемой.
Я сделал все как обычно (очистить, очистить кеш, перезагрузить компьютер, проверил настройки отображения ошибок, выполнить откат к более ранней версии, обновить зависимости, переустановить XCode), но ошибка сохраняется, и я фактически заблокирован от дальнейшего развития, пока не смогу решить это. Сказать, что я расстроен, было бы преуменьшением!
Я использую Xcode 10.2.1 (10E1001) Помогите!
1 ответ
Я разобрал приложение, а затем добавил в каждый класс по отдельности, пока ошибка снова не появилась. Проблема заключалась в опечатке (синтаксической ошибке) в структуре модели представления, в частности в строке:
let editTapped = CocoaAction { return }
который должен был быть:
let editTapped = CocoaAction {
// do stuff
return .empty()
}
Я предполагаю, что сбой компилятора в подсвечивании ошибки на панели редактора является ошибкой, поэтому я сообщу об этом (если у кого-то нет взглядов на обратное?), Так как это было очень много времени, чтобы разобраться. Странно было то, что откат к предыдущей рабочей версии не устранил ее - мне пришлось удалить все приложение, а затем пересобрать его с нуля, вручную добавив файлы, когда я пошел. Weird...