我刚刚安装了Xcode11 Beta,当我尝试使用SwiftUI选中标记创建新的新项目时,它返回错误。
无法成功构建和运行。
文件“ ContentView.swift”是模块“ SwiftUI”的一部分;忽略导入
ContentView.swift
使用未声明类型的“视图”
SceneDelegate.swift
使用未解析的标识符'UIHostingController'
我尝试删除所有派生数据,并将命令行工具设置为11
我正在使用macOS Mojave 10.14.5
答案 0 :(得分:16)
您的项目名为SwiftUI
-请尝试更改名称。
答案 1 :(得分:0)
您创建的每个项目都有一个module
,其名称与项目相同。因此,这里有两个 SwifUI模块:
SwiftUI
Xcode始终将最接近的定义作为默认值。因此,您的SwiftUI
比系统的SwiftUI
更近。但是您已经已经进入该项目的模块!因此Xcode会忽略导入。
一个非常常见的错误是将项目命名为与使用框架之一相同的名称! (例如CoreData
,SwiftUI
,SceneKit
,Metal
)
正如Matteo在他的回答中提到的,不要用另一个模块为您的项目命名 same 。将其更改为其他任何内容。
请注意,它也可能显示为错误。例如,如果您将项目命名为CoreData
,并使用 SwiftUI ,则错误显示为Circular dependency error
:
'CoreData'和'SwiftUI'模块之间的循环依赖
由于Xcode对模块感到困惑,无法检测出真正的问题所在。
假设您在名为class
的自定义框架中有一个名为Section
的{{1}},并且将其与MyProject
一起导入了。
SwiftUI
为使编译器(以及其他任何人)清楚可见,应在类名之前调用模块:
import SwiftUI
import MyProject
Section // <- This could be either SwiftUI's section or MyProject's Section
答案 2 :(得分:-1)
您永远不要创建名称为 SwiftUI 的应用,它始终会显示编译错误。只需更改名称并享受 SwiftUI
编码