Ton*_*old 2 cocoa cocoa-touch core-data
我今晚花了几个小时试图创建一个设置,我有三个托管对象上下文 - 一个附加到我的应用程序的委托,一个在NSObject
子类中负责UITableView
更新(通过一个NSFetchedResultsController
),一个在NSOperation
子类中.
我可以从NSOperation
子类到app委托获得更改,通过观察NSManagedObjectContextDidSaveNotification
并mergeChangesFromContextDidSaveNotification:
在我的主线程上启动,但是当我尝试从我的UITableView
数据源执行相同的操作时,我得到以下异常:
2010-02-19 02:00:39.750 MyApp[44687:207] Serious application error. Exception was caught during Core Data change processing: *** -[NSCFArray initWithObjects:count:]: attempt to insert nil object at objects[0] with userInfo (null)
2010-02-19 02:00:39.750 MyApp[44687:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSCFArray initWithObjects:count:]: attempt to insert nil object at objects[0]'
Run Code Online (Sandbox Code Playgroud)
我很感激任何建议 - 我之前涉及Core Data托管对象上下文的所有设计都是非常简单的1:1同步方案.我提出的甚至是可能的吗?
一个更好的问题是为什么要尝试保持多个上下文同步.有两个,一个用于主应用程序,一个用于导入,但导入上下文不需要保持同步,并且您已经知道如何从导入上下文中提供主要上下文.
那么第三个背景是什么?如果它仅用于表视图更新,那么这是一个糟糕的设计,您应该为整个UI层使用单个上下文.这很可能是解决问题的正确方法,而不是试图保持三种情况在空中徘徊.
归档时间: |
|
查看次数: |
1342 次 |
最近记录: |