【发布时间】:2021-10-11 11:01:55
【问题描述】:
前几天我正在处理一个项目,但我的预览停止了工作。我收到错误“编译失败,在范围内找不到“DataType””(所有代码/关系将在下面显示)。我已经重新启动了几次 XCode,甚至注释掉了该代码区域,但它仍然无法正常工作,是否有其他人遇到此问题,我该如何解决?
我正在预览一个名为“Profile Sheet”的工作表,只是一个标准的 swiftUI 视图,所以预览代码如下所示:
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ProfileSheet()
}
}
在配置文件中,它正在从与我的模型文件(不同的结构,不同的文件)关联的静态函数中访问数据,它正在使用的函数以及定义“DataType”的函数,有问题的泛型在这里:
static func saveData<DataType>(data: DataType, for key: String) {
defaults.setValue(data, forKey: key)
}
static func retrieveData<DataType>(defaultValue: DataType, for key: String) -> DataType {
guard let value = defaults.value(forKey: key) as? DataType else {return defaultValue}
return value
}
static func saveComplexData<DataType>(data: DataType, for key: String) where DataType: Codable {
let encodedData = try! JSONEncoder().encode(data)
defaults.setValue(encodedData, forKey: key)
}
static func retrieveComplexData<DataType>(defaultValue: DataType, for key: String) -> DataType where DataType: Codable {
guard let retrievedData = defaults.value(forKey: key) as? Data else { return defaultValue}
let decodedData = try! JSONDecoder().decode(DataType.self, from: retrievedData)
return decodedData
}
所有这些功能都按预期进行,并且显然可以编译。即使当我运行以启动预览器并编译我的应用程序时,它是否正确构建,它仅在它尝试启动预览模拟器时。
最后,我认为 Id 完全删除了这些函数,只是尝试显示一个与它们无关的视图,所以我预览了 Text("test") 并得到了同样的错误。
在 Xcode 13 beta 3 和 4 上,我可以运行模拟器,但我不能只在这些 beta 上工作,因为它们仍然相当不稳定。
任何帮助表示赞赏:)
【问题讨论】:
-
您是否尝试清除 XCode 缓存?转到: 并删除那里的 Project Build Data and Indexes。
标签: swift xcode swiftui preview xcode12