在Swift包中使用CoreData和SwiftUI预览时出现问题
tldr:swift包内的核心数据,工作;SwiftUI在swift软件包内工作;两者在swift软件包的预览中一起使用,不起作用 我有以下资料:在Swift包中使用CoreData和SwiftUI预览时出现问题,swift,xcode,swiftui,swift-package-manager,Swift,Xcode,Swiftui,Swift Package Manager,tldr:swift包内的核心数据,工作;SwiftUI在swift软件包内工作;两者在swift软件包的预览中一起使用,不起作用 我有以下资料: swift项目(仅限iOS,以保持简单) 通过Xcode创建的包(新建->Swift包) swift包有一个核心数据模型和PersistenceController swift包有一个SwiftUI视图,几乎是默认样板文件ContentView的逐行副本(刚刚重命名为OriginalContentView以避免任何冲突的可能性) 以下工作如预期:
- swift项目(仅限iOS,以保持简单)
- 通过Xcode创建的包(新建->Swift包)
- swift包有一个核心数据模型和PersistenceController
- swift包有一个SwiftUI视图,几乎是默认样板文件ContentView的逐行副本(刚刚重命名为OriginalContentView以避免任何冲突的可能性)
- 在swift包中的测试包中,测试成功运行,这些测试包括使用内存存储启动PersistenceController、播种一些数据、测试一些创建、读取、更新和删除,以及使用谓词和排序描述符的一些查询。所有这些测试都通过并按预期工作
- 在主iOS应用程序中,如果我导入包并将OriginalContentView放在主ContentView SwiftUI视图中,预览将按预期工作(当我按照样板文件将包的PersistenceController内存中存储的上下文传递到环境对象时)
- 同样在主iOS应用程序中,我可以构建一个应用程序,并在模拟器中使用持久存储(即不在内存中)运行它。应用程序正确加载、正常工作,并按预期在应用程序构建和加载之间保存数据
A fetch request must have an entity..
----------------------------------------
UncaughtExceptionError: Crashed due to an uncaught exception
Xcode Previews crashed due to an uncaught exception `NSInvalidArgumentException`. Reason: executeFetchRequest:error: A fetch request must have an entity..
==================================
| HumanReadableNSError: Rendering service was interrupted
|
| com.apple.dt.xcodepreviews.service (12):
通过一些谷歌搜索,这个错误似乎出现在一些不同的情况下,但我已经消除了每一个错误(我并不懒得加载托管对象上下文,我的类名和实体名是相同的——这两个是不断出现的)
同样,当它嵌入到主iOS构建目标中的视图中时(预览和在模拟器中运行),这让我认为在包中运行画布预览和在实际应用程序目标中运行与CoreData有关的画布预览之间存在某种环境差异
(我使用的是Xcode 12.4)