小编key*_*ogg的帖子

使用CoreData预览ContentView

当我尝试包含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。

core-data swiftui

7
推荐指数
2
解决办法
759
查看次数

标签 统计

core-data ×1

swiftui ×1