nsmanagedobjectcontext
全部标签 我想使用单例UIApplication来访问AppDelegate的managedObjectContext。但是当我写[[[UIApplicationsharedApplication]delegate]managedObjectContext]或[[[UIApplicationsharedApplication]delegate]__managedObjectContext]它不起作用。但是这条线工作正常:NSLog(@"SeekingfortheAppDelegate:%@",[[[UIApplicationsharedApplication]delegate]class]);你
我遇到了在多个NSManagedObjectContexts和多线程场景中发生的相同死锁问题(这在SO上很常见)。在我的一些ViewController中,我的应用程序使用后台线程从Web服务获取数据,并在同一个线程中保存数据。在其他情况下,在不保存的情况下不再继续前进是有意义的(例如,当他们点击“下一步”时从表单中保留值),保存在主线程上完成。AFAIK理论上这应该没有问题,但偶尔我可以在调用时使死锁发生if(![mocsave:&error])...当死锁发生时,这似乎总是在后台线程的保存中。并非每次通话都会发生这种情况;事实上恰恰相反,我必须使用我的应用程序几分钟,然后它就会发生
我对核心数据编程完全陌生。我只是想找出实现核心数据代码的最佳位置。我完成了苹果教程Locations并且效果很好。现在我尝试将其转移到我当前的项目中,这有点复杂。位置教程展示了一个RootViewController,包括一个以编程方式生成的tableView。我的项目基于tabView模板。它拥有一个包含TabBarController的MainWindow.xib,其中包含三个ViewController(MapView、ListView、SettingsView),其中每个View都有自己的navigationController和xib文件。第一个绊脚石是更改它将与tableV
我的应用程序中有两个线程在运行。在主线程中,我更新实体中键的值或从核心数据中获取一些行。在后台线程中,我从服务器下载数据。但有时在更新/处理[managedObjectContextexecuteFetchRequest:requesterror:&error]上的核心数据时……我明白了:#00x34507c5cinsemaphore_wait_signal_trap()#10x34507f58insemaphore_wait_signal()#20x364d573ainpthread_mutex_lock()#30x35c91a2ein-[_PFLocklock]()#40x35c9
去年我使用RestKit0.10在后台无缝下载和保存核心数据对象。然而,当我在2013年尝试使用restkit时,我注意到他们已经取消了ActiveRecord模式,我依靠它来抽象出后台保存的所有不愉快。我发现MagicalRecord框架中存在ActiveRecord模式,但我能找到的大部分文档都是针对2.x版本的,而我的cocoapods安装的是3.x。我花了最后2个小时进行搜索,找到了很多已经过时并且不再适用于这些新框架的答案。这提出了一个问题:使用2013年可用的框架在后台保存核心数据对象的标准/最简单方法是什么?我应该尝试其他框架吗? 最佳答案
好吧,我在Apple的网站上阅读了iOS的核心数据教程,但我不太明白。我如何实际获取NSManagedObjectContext以便我可以使用它来访问我的数据库? 最佳答案 如果你需要创建一个新的上下文,只需使用alloc/init然后添加一个持久存储协调器。这在CreatingaNewManagedObjectContext中有描述。.如果你已经在你的应用委托(delegate)或RootViewController中创建了一个上下文,那么你只需要在创建Controller时将它传递到你的ViewController中。例如,ap
正在关注thisexcellentpost通过OlivierDrobnik,我实现了CoreData专家MarcusS.Zarra提出的三层CoreData堆栈:与此图和我的代码的唯一区别是我只使用一个临时背景MOC,以避免在多个临时MOC中插入对象时出现重复。这是我的上下文初始化代码:#pragmamark-NSManagedObjectContexts+(NSManagedObjectContext*)privateManagedObjectContext{if(!_privateManagedObjectContext){//SetupMOCattachedtoPSC_priva
我只是想创建实体但不保存,只检查它们。我可以为它们创建一个临时上下文吗?一旦我决定存储它们,是否有办法将它们移动到持久上下文中?重点:这些功能是否可以通过MagicalRecord获得API? 最佳答案 创建一个新的NSManagedContext,将parentContext属性设置为您的主上下文,并在新上下文中创建新对象-您可以对这些对象做任何您想做的事情,然后稍后保存新的上下文(这会将对象移动到主上下文)或者只是丢弃它-对象将会消失。似乎有一个+(NSManagedObjectContext*)MR_contextWithPa
我在GCD调度队列中对NSManagedObjectContext进行操作,定义如下:-(NSManagedObjectContext*)backgroundContext{if(backgroundContext==nil){self.backgroundContext=[NSManagedObjectContextMR_contextThatNotifiesDefaultContextOnMainThread];}returnbackgroundContext;}MR_contextThatNotifiesDefaultContextOnMainThread是来自MagicalRe
我对CoreData还是很陌生,我正在尝试理解为什么它需要传递NSManagedObjectContext。据我了解,需要传递上下文,这样多个线程才不会影响相同的上下文,但我也觉得这种模式有时被认为是一种反模式,如前所述here.CoreData理论上能否以线程安全的方式实现,从而避免使用这种模式?其他ORM(例如Ruby的ActiveRecord)如何避免这种模式?例如,CoreData不能实现一个per-NSManagedObject保存方法,例如extension.这个轻型框架不处理多线程,但NSManagedObjects不能使用某种内部GCD队列来支持它,而内部上下文不公开吗