首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用关系从核心数据实体获取数据

使用关系从核心数据实体获取数据
EN

Stack Overflow用户
提问于 2020-05-06 03:23:12
回答 1查看 98关注 0票数 0

我的核心数据模型中有两个实体:ComputerComponents。一台计算机可以有多个组件,因此关系设置为to-manyComputer还有一个属性computerName

添加组件时,我希望选定的计算机出现在“添加组件”视图中。这个add component视图是用SwiftUI编写的,我有以下代码来创建ManagedObjectContext和获取computer对象:

代码语言:javascript
复制
    @Environment(\.managedObjectContext) var moc: NSManagedObjectContext
    @FetchRequest(entity: Computer.entity(), sortDescriptors: []) var computerToDisplay: FetchedResults<Computer>

然后,我运行以下ForEach循环,我希望它能抓取一台计算机并将其放入文本字段中

代码语言:javascript
复制
    ForEach(computerToDisplay, id: \.self) { computer in
        Text(computer.computerName)
    }

使用这段代码,当我试图打开add component视图时,我得到了以下错误:

代码语言:javascript
复制
Thread 1: Exception: "executeFetchRequest:error: A fetch request must have an entity."

现在,我从UIKit ViewController加载add component视图。所以我不确定是否有什么东西没有传递到add component视图。

这就是我加载组件视图的方式:

代码语言:javascript
复制
@IBSegueAction func addComponentSegueAction(_ coder: NSCoder) -> UIViewController? {
    let swiftUIView = UIHostingController(rootView: AddComponentView().environment(\.managedObjectContext, moc!))
    present(swiftUIView, animated: true, completion: nil)
    return UIHostingController(coder: coder, rootView: AddComponentView())
}

任何帮助都将不胜感激,谢谢。

EN

回答 1

Stack Overflow用户

发布于 2020-05-07 01:05:53

尝尝这个,

代码语言:javascript
复制
@IBSegueAction func addComponentSegueAction(_ coder: NSCoder) -> UIViewController? {
    let swiftUIView = UIHostingController(coder: coder, rootView: AddComponentView().environment(\.managedObjectContext, moc!)
    return swiftUIView
}

看起来,您正在使用您的AddComponentView()创建多个UIHostingViewController实例,并返回环境中没有AddComponentView() managedObjectContext的实例。

谢谢!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61621313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档