如何在Swiftui中指定不同的上下文,然后指定主应用程序ViewContext?
我有一个应用程序,该应用程序具有多个核心数据模型,一个在主应用程序内部,一个包装中的一个。
问题在于,当调用应用程序包视图时,使用fetchrequest显示来自其模型的数据时,我会遇到错误。
提取请求的实体xxx'entity'似乎来自与此上下文不同的nsmanagebjectModel
let packagePersistenceController = PackagePersistenceController.shared
SomeView()
.environment(\.managedObjectContext, packagePersistenceController.container.viewContext)
struct SomeView() {
let packagePersistenceController = PackagePersistenceController.shared
var body:some View {
AnotherView()
.environment(\.managedObjectContext, packagePersistenceController.container.viewContext)
}
}
如果还有其他更好的选择可以做到这一点?
I have an application which has multiple Core Data Models, one inside the main application and one inside a package.
The issue is that when calling Package Views from application which use FetchRequest to display data from its model I get an error.
The fetch request's entity xxx 'Entity' appears to be from a different NSManagedObjectModel than this context
Specifying NSPersistentContainer
on each view and then passing down to child view seems to work:
let packagePersistenceController = PackagePersistenceController.shared
SomeView()
.environment(\.managedObjectContext, packagePersistenceController.container.viewContext)
struct SomeView() {
let packagePersistenceController = PackagePersistenceController.shared
var body:some View {
AnotherView()
.environment(\.managedObjectContext, packagePersistenceController.container.viewContext)
}
}
I wonder if there any other better option do accomplish this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
核心数据旨在与一个使用多个合并模型的视图上下文一起使用,并且持久商店均由协调员管理。获取或插入时,您可以选择使用哪个商店。
mergedmodel(来自:)
返回通过合并给定捆绑包中的所有模型创建的模型。
为提取请求指定的持久商店数组。
Core Data is designed to work with one view context that uses multiple merged models and persistent stores all managed by a coordinator. When you fetch or insert you can choose which store to work with.
mergedModel(from:)
Returns a model created by merging all the models found in given bundles.
affectedStores
An array of persistent stores specified for the fetch request.
assign(_:to:)
Specifies the store in which a newly inserted object will be saved.