30得票1回答
performBlock:和performBlockAndWait:之间的行为差异是什么?

我正在创建一个NSManagedObjectContext在私有队列中处理从文件和/或服务获取的数据更新:NSManagedObjectContext *privateContext = [[NSManagedObjectContext alloc] initWithConcurrencyTy...

30得票3回答
核心数据:子上下文是否会为新插入的对象获得永久的objectID?

我有一个应用程序,设置了两个托管对象上下文: 父上下文:NSPrivateQueueConcurrencyType,与持久存储相关联。 主上下文:NSMainQueueConcurrencyType,是父上下文的子级。 当向主上下文插入新的托管对象时,我会像这样先保存主上下文,然后再保...

29得票2回答
NSManagedObjectContext(): `init()`在iOS 9.0中已被弃用:请使用-initWithConcurrencyType。

我正在学习用Swift实现Core Data Stack - Demystified,但是在阅读到某一行时遇到了问题:self.context = NSManagedObjectContext() 我收到了警告`init()` was deprecated in iOS 9.0: Use -i...

28得票3回答
更改托管对象属性不会触发NSFetchedResultsController更新表视图。

我有一个带有谓词的fetchedResultsController,其中"isOpen == YES" 当调用closeCurrentClockSet时,我将该属性设置为NO。 因此,在我的tableView上不应再出现它。 由于某种原因,这并没有发生。 有人能帮我解决这个问题吗?-(v...

27得票3回答
父/子NSManagedObjectContext的正确实现方法

我的应用程序有时会将对象插入到托管对象上下文中,这些对象不一定要保存。例如,当我启动“添加实体”模态时,我创建一个托管对象并将其赋值给模态。如果用户从该模态保存,则保存上下文。如果他取消,则删除对象,无需保存。 现在,我引入了一个“导入”功能,它使用URL方案切换到我的应用程序并添加一个实体...

25得票2回答
NSManagedObjectContext 的 reset 和 rollback 有什么区别?

文档中写道:- (void)reset 将接收器返回到其基本状态。 讨论 所有接收器管理的对象都会被“遗忘”。 如果您使用此方法,则应确保还要丢弃对使用接收器获取的任何托管对象的引用,因为之后它们将无效。- (void)rollback 清空撤销栈,丢弃所有插入和删除,并将更新后的对象还原到上...

23得票1回答
核心数据合并两个托管对象上下文

我的Cocoa应用程序在主线程上拥有托管对象上下文。当我需要更新数据时,我的程序会: 启动一个新线程 从服务器接收新数据 创建一个新的托管对象上下文 发送通知到主线程以合并这两个上下文 这是在主线程上接收通知的函数。- (void)loadManagedObjectFromNotifi...

23得票2回答
NSFetchedResultsController不能显示来自不同上下文的更新。

我有一个`NSFetchedResultsController`,并且通过`NSOperationQueue`在不同的线程上执行一些操作以更新管理对象。 FRC(带有其谓词)如下所示: - (NSFetchedResultsController*)fetchedResultsControl...

22得票2回答
核心数据崩溃 NSInternalInconsistencyException 'statement is still active'

我有两个托管对象上下文,它们共享同一个持久存储协调器: 一个使用NSMainQueueConcurrencyType用于主线程 一个使用NSPrivateQueueConcurrencyType用于执行后台处理。 所有数据解析工作都在针对私有队列的performBlock调用中完成,并...

21得票2回答
如何在视图控制器中获取managedObjectContext而不是从appDelegate获取?

最近我知道了“您真的不应该调用AppDelegate来获取托管对象上下文”。 苹果还在他们的文档这里中提出了这个建议。 大致意思是: 视图控制器通常不应从全局对象(例如应用程序委托)中检索上下文 - 这使应用程序架构变得严格。 视图控制器也不应为自己使用创建上下文(除非它是嵌套上下文)。 ...