SwiftUI @FetchRequest 使应用程序崩溃并返回错误

2023-12-02

我正在尝试使用 Xcode 11 在 SwiftUI 的 mac 应用程序中使用核心数据。 我在创建项目时勾选了“使用核心数据”。 我还创建了实体(称为 VisitedCases)并使用编辑器创建 NSManagedObject 子类文件。我还将 Codegen 设置为“手动/无”。 以下是生成的 NSManagedObject 文件中的代码:

VisitedCases+CoreDataProperties.swift

extension VisitedCases {

    @nonobjc public class func fetchRequest() -> NSFetchRequest<VisitedCases> {
        return NSFetchRequest<VisitedCases>(entityName: "VisitedCases")
    }

    @NSManaged public var caseNumber: String

} 

VisitedCases+CoreDataClass.swift

@objc(VisitedCases)
public class VisitedCases: NSManagedObject {

}

我在中调用了@Environment变量和@FetchRequest内容视图.swift as:

struct ContentView: View {
    @Environment(\.managedObjectContext) var managedObjectContext

    @FetchRequest(entity: VisitedCases.entity(),
                  sortDescriptors: []
                  ) var orders: FetchedResults<VisitedCases>
//@State vars and the rest of the code
}

但是,当我运行时,应用程序一启动就崩溃了,输出中出现以下错误:

2020-02-23 18:36:16.889306+0330 ImageSelector[17874:149503] [error] error: No NSEntityDescriptions in any model claim the NSManagedObject subclass 'VisitedCases' so +entity is confused.  Have you loaded your NSManagedObjectModel yet ?
CoreData: error: No NSEntityDescriptions in any model claim the NSManagedObject subclass 'VisitedCases' so +entity is confused.  Have you loaded your NSManagedObjectModel yet ?
2020-02-23 18:36:16.889389+0330 ImageSelector[17874:149503] [error] error: +[VisitedCases entity] Failed to find a unique match for an NSEntityDescription to a managed object subclass
CoreData: error: +[VisitedCases entity] Failed to find a unique match for an NSEntityDescription to a managed object subclass
2020-02-23 18:36:16.921131+0330 ImageSelector[17874:149503] executeFetchRequest:error: A fetch request must have an entity.

我还有一个将字符串保存到存储中的函数,并且似乎工作得很好:

    func addCaseNumber (caseNo: String) {
        guard caseNo != "" else {return}
        let newCaseNumber = VisitedCases(context: self.managedObjectContext)
        newCaseNumber.caseNumber = caseNo
        do {
         try self.managedObjectContext.save()
         print("Case number saved.")
        } catch {
         print(error.localizedDescription)
         }
    }

我的代码有什么问题以及我应该如何修复它?


尝试分配您的managedObjectContext在你的ContentView像这样

let managedObjectContext: NSManagedObjectContext =  ((UIApplication.shared.delegate as? AppDelegate)?.persistentContainer.viewContext)!

如果这有效,则意味着您的@Environment var不工作。

要找出中断发生的位置,请从SceneDelegate having

let contentView = ContentView().environment(\.managedObjectContext, context)

然后查看与哪里连接Environment正在被打破

在您的所有视图中添加类似的内容,看看哪些没有得到Environment多变的。

@Environment(\.managedObjectContext) var managedObjectContext
     var body: some View {
         print("MOC = ")
         print(managedObjectContext.name ?? "broken")
     return Text("Hello World!")
}

当您发现中断时,可以使用以下命令重新建立它

YourBrokenView().environment(\.managedObjectContext, managedObjectContext)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SwiftUI @FetchRequest 使应用程序崩溃并返回错误 的相关文章

随机推荐

  • 相当于 HTML 中的 include()

    我想知道是否有一种方法可以仅使用 html 将一些 html 内容包含在另一个 html 中 PHP 的替代品 这可能吗 EDIT 这引起了一些混乱 我需要的是 几乎是一个 html 标签 它具有将 html 文档包含在另一个文档中的功能
  • (PySpark)reduceByKey 之后的嵌套列表

    我确信这是非常简单的事情 但我没有找到与此相关的任何内容 我的代码很简单 stream stream map mapper stream stream reduceByKey reducer 没什么特别的 输出如下所示 key1 value
  • Git Shell 中的 Meteor (mingw)

    我正在尝试为 Meteor JS 编写教程 但无法使用 Windows 版 Github 附带的 Git Shell 使其正常工作 它找不到流星命令 它在cmd中运行 并且位于Windows环境路径中 我究竟做错了什么 运行一个 bat来自
  • 滚动android时列表视图项目改变位置?

    在我的应用程序中 我使用了自定义列表视图适配器 在列表视图项中我添加了另一个布局 因为在我的服务中 一个订单有任意数量的订单项目 为了显示订单项目 我将下面的订单项目布局添加到自定义列表视图项目中 它工作正常 但是当滚动列表视图时 数据会发
  • 快速找到另一张大图像中的较小图像

    不管怎样 让这件事进展得更快 因为现在源图像大小为 1024x768 模板大小为 50x50 大约需要 6 秒 这是使用AForge 如果有人知道其他更快且更简单的方法 请提交 我想做的任务是在屏幕截图中找到较小的图像 最好快一点 我的限制
  • 赋值的左侧必须是变量、属性或索引器

    我收到错误 但不知道为什么 static void decoupeTableau IEnumerable
  • Java JApplet 到 JFrame

    我想将 JApplet 转换为 JFrame 我在互联网上找到了这个代码 它是一个单词搜索游戏 我想在课程演示中使用此代码 但我不想把它放在小程序中 我要粘贴到此处的代码大约有 7 000 个字符 我尝试采用 JApplet 并扩展 JFr
  • Julia 中的逻辑索引

    在 MATLAB 中 要删除矩阵中具有 NaN 值的所有行 我编写了以下代码 myMatrix any isnan myMatrix 2 Where any isnan myMatrix 2 返回逻辑向量 我有办法在朱莉娅做到这一点吗 我似
  • Android Studio 任务“:app:preDexDebug”执行失败[重复]

    这个问题在这里已经有答案了 我的构建应用程序正在发生这种奇怪的行为 奇怪的是 这个com nineoldandroids是一个来自android资源库的jar 我尝试删除构建源并再次重新编译 但没有成功 我的构建等级 buildscript
  • 如何修复 int.Parse 中的 ArgumentNullException?

    这是在 Mono 中运行良好的 cs 文件 using System public class HelloWorld static public void Main Console WriteLine Enter a number int
  • 函数“sleep()”的正确 #include 是什么?

    我正在使用 Big Nerd Ranch 的书 Objective C 编程 它首先让我们在前几章中用 C 编写 在我创建的一个程序中 我使用了睡眠功能 书上告诉我要放 include
  • SockJs - 未找到“信息”路径

    我正在运行一个SockJS 的示例 运行 npm install 一切正常 Start server没有问题 当我第一次加载时测试页 我看到 404 调用失败http 127 0 0 1 echo info 我正在查看 sockjs 代码
  • 如何调用Android联系人列表?

    我正在制作一个 Android 应用程序 需要调用手机的联系人列表 我需要调用联系人列表功能 选择一个联系人 然后返回我的应用程序并显示该联系人的姓名 这是我在互联网上获得的代码 但它不起作用 import android app List
  • Windows Phone 8.1 中的 AutoSuggestBox 出现奇怪的结果

    我正在尝试使用标准AutoSuggestBox在 Windows Phone 8 1 XAML 应用程序中 但它的行为非常奇怪 在一个简单的演示中 我收集了 Items new ObservableCollection
  • Android - 加快在数据库中插入数据的速度

    我目前有一个 CSV 文件 我正在解析该文件 并尝试将数据插入到 android 数据库中 我遇到的问题是插入所有数据花费的时间太长 数据量很大 但我觉得不需要 20 分钟左右就能完成 基本上 我创建数据库 然后开始解析 在解析每个单独的
  • CameraSource .setAutoFocusEnabled(true) 返回:尽管设备支持自动对焦,但该设备不支持相机自动对焦

    下面是我的条形码扫描仪活动 除了 setAutoFocusEnabled true 之外 一切正常 它在运行时返回一条消息 显示我的设备不支持自动对焦 尽管 Samsung Tab E T561 是支持自动对焦的设备 import andr
  • 如何使用 R 和 ggplot 绘制逻辑回归模型的结果

    creat a new data frame and add a binary column called surv24 leukemia data lt data frame wbc leuk wbc ag leuk ag time le
  • 减小 pdf 大小 - Objective c

    我有一个pdf生成项目 它由一些文本和一个已存储在数据库中的图像组成 我想预览并邮寄生成的pdf 当只有文本数据时一切正常 如果我们的数据中有图像 就会出现问题 邮件收到 大小为 10MB 或以上的 pdf 即使它具有大小为 1MB 或以下
  • List RemoveAll() 没有删除项目

    我有一个看起来像这样的对象 Text Another lovely alert Category 2 UserAlerts UserId 2 这将传递到 Web API 并正确绑定到 Key Column Order 0 public lo
  • SwiftUI @FetchRequest 使应用程序崩溃并返回错误

    我正在尝试使用 Xcode 11 在 SwiftUI 的 mac 应用程序中使用核心数据 我在创建项目时勾选了 使用核心数据 我还创建了实体 称为 VisitedCases 并使用编辑器创建 NSManagedObject 子类文件 我还将