Я только что установил Xcode 11, и когда я пытаюсь создать новый новый проект с выбранной галочкой SwiftUI, он возвращает ошибку.
Не удается построить и запустить успешно.
File 'ContentView.swift' is part of module 'SwiftUI'; ignoring import
ContentView.swift
Use of undeclared type 'View'
SceneDelegate.swift
Use of unresolved identifier 'UIHostingController'
Я попытался удалить все производные данные, а также установить для инструментов командной строки значение 11.
Не использовать версию 10.14.5





Ваш проект называется SwiftUI — попробуйте использовать другое имя.
Да, позвольте мне попробовать с другим именем
Теперь он работает, я забыл, что мы не можем использовать имя класса :)
@PinkeshGjr Приложение по-прежнему является Swift module - и оно разрешается как зависимость перед фактической структурой. Итак, import SwiftUI означает import the app module, поэтому Xcode игнорирует импорт.
У меня была такая же проблема, когда я создал проект MacOs/SwiftUI с именем CoreData!
Попробуйте с другим именем проекта. С SwiftUI всегда будет отображаться ошибка компиляции. Просто измените имя и наслаждайтесь программированием с помощью SwiftUI.
Вы в основном перепечатали ответ Маттео. Не дублируйте ответ без значимых целей.
Каждый проект, который вы создаете, имеет module с тем же названием, что и проект. Итак, здесь есть модули два SwifUI:
SwiftUIXcode всегда принимает ближайшее определение по умолчанию. Так что ваш SwiftUI ближе, чем системный SwiftUI. Но ты уже являются в модуле проекта! Таким образом, Xcode игнорирует импорт.
Очень распространенная ошибка — называть проэкт так же, как один из используемых фреймворков! (например, CoreData, SwiftUI, SceneKit, Metal)
Как упомянул Маттео в своем ответе, Не назовите свой проект такой же с другим модулем. Измените его на что-нибудь другое.
Обратите внимание, что Это тоже может быть ошибкой. Например, если вы назовете свой проект CoreData и используете SwiftUI, ошибка будет выглядеть как Circular dependency error:
Circular dependency between modules 'CoreData' and 'SwiftUI'
Потому что Xcode путается в модулях и не может определить, в чем реальная проблема.
Представьте, что у вас есть class с именем Section в пользовательской среде с именем MyProject, и вы импортировали его вместе с SwiftUI.
import SwiftUI
import MyProject
Section // <- This could be either SwiftUI's section or MyProject's Section
Чтобы было понятно компилятору (да и всем остальным), следует вызывать модуль перед именем класса:
SwiftUI.Section // <- This returns the SwiftUI's Section
MyProject.Section // <- This returns the MyProject's Section
У вас macOS 10.15?