当我尝试包含CoreData提取请求的SwiftUI ContentView时,预览崩溃。想知道设置@environment的正确方法是什么,以便预览可以访问coredata堆栈。当构建模拟器但不使用PreviewProvider时,此方法工作正常
import SwiftUI
struct ContentView: View {
@Environment(\.managedObjectContext) var managedObjectContext
@FetchRequest(entity: ProgrammingLanguage.entity(), sortDescriptors: [
NSSortDescriptor(keyPath: \ProgrammingLanguage.name, ascending: true),
NSSortDescriptor(keyPath: \ProgrammingLanguage.creator, ascending: false)
]) var languages: FetchedResults<ProgrammingLanguage>
var body: some View {
NavigationView {
List {
ForEach(languages, id: \.self) { language in
Text("Language: \(language.name ?? "Anonymous")")
}
}
.navigationBarTitle("My Languages")
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试将参数传递给ContentView_Previews中的ContentView时,出现以下编译器错误。
ContentView(managedObjectContext: managedObjectContext)
Run Code Online (Sandbox Code Playgroud)
错误:实例成员'managedObjectContext'不能用于类型'ContentView_Previews'
SwiftUI预览可能不支持此功能吗?还是有什么可以解决这个问题?
我正在运行Xcode 11 Beta 7。