objective-c – 正确使用核心数据进行多重访问 – iphoneipad

objective-c – 正确使用核心数据进行多重访问 – iphoneipad,第1张

概述我有一个问题;) 实际上我想在不同的线程中使用核心数据. 我有两个UI视图,显示数据库中同一个表的数据. 如果在第一个视图中删除一个我应该保存的条目,然后让PersistentStoreCoordinator给我(UIview)一个大脑新的托管对象. 他们在itunesU官方视频“使用核心数据”中所说的话 使用cocoa的优秀消息系统,我可以处理基本的同步. (我发送’必须获取新MO’消息) 但是 我有一个问题;)

实际上我想在不同的线程中使用核心数据.
我有两个UI视图,显示数据库中同一个表的数据.

如果在第一个视图中删除一个我应该保存的条目,然后让PersistentStoreCoordinator给我(UIvIEw)一个大脑新的托管对象.
他们在itunesU官方视频“使用核心数据”中所说的话

使用cocoa的优秀消息系统,我可以处理基本的同步. (我发送’必须获取新MO’消息)

但是我应该如何正确保存并“关闭”数据库然后获取另一个托管对象.

< ### update ###>

我有2个vIEwController,每个我想要的视图一个.

如果我在每个VIEwController上设置coredata堆栈,则可以从每个视图访问数据,但不能同步.

但是,如果我在AppDelegate中放置一个核心数据堆栈,我得到了一个异常:

***由于未捕获的异常’NSObjectInaccessibleException’而终止应用,
原因:’CoreData无法解决’0x498f600< x-coredata:...>‘的错误

我该怎么办 ?

< ### update ###>

在此先感谢任何帮助;)

解决方法 每个视图都不在单独的线程上.应用程序的整个UI都在一个线程上.

在这种情况下,您不需要使用多线程.

要创建新对象,您只需要在NSEntityDescription对象上使用class方法请求一个对象.要删除对象,需要在NSManagedobjectContext上使用-deleteObject:方法.

更新

您应该只有一个核心数据堆栈,除非您处理多线程环境(不是).理想情况下,应在Application Delegate中创建堆栈,然后向下传播到UIVIEwController实例.如果您收到错误,则需要单独解决该错误.从您发布的错误的外观来看,您保留/挂起已被Core Data删除的NSManagedobject,因此无法实现,因为它已不在商店中.这是堆栈所在的单独问题.

在旁注中,习惯上接受您的问题的答案,然后发布一个单独的问题来回答.

总结

以上是内存溢出为你收集整理的objective-c – 正确使用核心数据进行多重访问 – iphone / ipad全部内容,希望文章能够帮你解决objective-c – 正确使用核心数据进行多重访问 – iphone / ipad所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1212754.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存