swift - SwiftUI 代码未在 UIKit 项目中编译
问题描述
我在仅使用 UIKit 的 Xcode 项目中创建了一个新的 SwiftUI 视图。我正在尝试在 SwiftUI 中为应用程序创建新屏幕,然后将它们嵌入到 ViewControllers 中。Xcode 在 SwiftUI 文件中自动生成结构和预览。但随后几乎每一行都会出错,就好像 Xcode 无法将 SwiftUI 导入文件一样。
我有:在 SceneDelegate.swift 中正确设置窗口场景,从 info.plist 中删除情节提要键,在项目构建设置中打开预览,确保我的项目针对 iOS 13.0,清理派生数据。
我在 SceneDelegate 中的设置并导入了 SwiftUI:
if let windowScene = scene as? UIWindowScene {
let window = UIWindow(windowScene: windowScene)
window.rootViewController = UIHostingController(rootView: ProfilePage())
self.window = window
window.makeKeyAndVisible()
}
// ERROR: Generic class 'UIHostingController' requires that 'ProfilePage' conform to 'View'
我的代码:
import SwiftUI
struct ProfilePage: View {
var body: some View {
Text("Hello, World!")
}
}
struct ProfilePage_Previews: PreviewProvider {
static var previews: some View {
ProfilePage()
}
}
解决方案
正如您在错误消息中看到的那样,XCode 指的是UIView
而不是SwiftUI.View
. 您应该替换View
为SwiftUI.View
来解决问题。
推荐阅读
- regex - 特定语法的正则表达式
- reactjs - 用于固定颜色值的 Highchart Treemap colorindex
- jquery - Show div based on multiple radio buttons
- rest - REST 标识符的有效字符
- angular - Angular 模块摇树
- mongodb - 使用聚合查询 MongoDB 中的大数据
- xcode - AppCenter iOS 设备测试 - 测试运行器无法启动错误
- java - 从字符串列表JAVA中删除连续元素
- php - 如何在使用 Gitlab CI 迁移到服务器之前使用 Composer 安装依赖项
- sql-server - 如何在输出文件中的不同行上获取部分 SSRS 报告数据