草庐IT

nsmanagedobjectcontext

全部标签

objective-c - 如何创建子 NSManagedObjectContext?

我看过一些视频/线程,它们表示可以创建“子级”MOC——使用其他MOC作为其持久存储的MOC。有用的,例如,在您正在线程化应用程序的上下文中,并希望拥有一个可以保存/回滚子线程创建的更改的主MOC。(据我所知,一个MOC和它的managedObjects必须在同一个线程上使用)问题是,如何创建子MOC?我无法找到我正在观看的介绍它们的WWDC视频,我所看到的一切都在谈论如何在它们制作完成后使用它们。我可以轻松地分配一个新的MOC,但我该如何设置它持久存储是另一个MOC?该引用文献没有显示任何执行此操作的函数! 最佳答案 创建一个您可

objective-c - 核心数据 : Clear changes from NSManagedObjectContext

我正在应用程序委托(delegate)级别实例化一个NSManagedObjectContext对象,并在我的所有UIViewController中共享它。这是我用来在我的一个ViewController中访问它的代码:NSManagedObjectContext*managedObjectContext=appDelegate.managedObjectContext;modelObj=(Model*)[NSEntityDescriptioninsertNewObjectForEntityForName:@"Model"inManagedObjectContext:[appDeleg

iphone - iOS5 NSManagedObjectContext 并发类型以及它们是如何使用的?

目前关于新的NSManagedObjectContext并发类型的文献似乎有点稀疏。除了WWDC2011视频和我一路上收集的一些其他信息外,我仍然很难掌握每种并发类型的使用方式。以下是我对每种类型的解释。如果我理解有误,请纠正我。NSConfinementConcurrencyType这种类型在过去几年中已成为常态。MOC不受每个线程的影响。因此,如果线程AMOC想要通过保存消息合并来自线程BMOC的数据,则线程A需要订阅线程B的MOC保存通知。NSPrivateQueueConcurrencyType无论每个MOC树在哪个线程上,每个MOC树(父MOC和子MOC)都共享同一个队列。因

core-data - 带有谓词的 NSFetchedResultsController 忽略从不同 NSManagedObjectContext 合并的更改

我正在使用具有谓词的NSFetchedResultsController呈现TableView内容:[NSPredicatepredicateWithFormat:@"visible==%@",[NSNumbernumberWithBool:YES]]在使用单独的NSManagedObjectContext的后台线程上,我更新了一些实体并将它们的visible值从NO更改为YES。保存、合并主线程的NSManagedObjectContext中的更改。但是NSFetchedResultsController的fetchedObjects没有改变。此外,Controller不会在委托(d

ios - 父/子 NSManagedObjectContext 的正确实现

我的应用程序有时会将不一定要保存的对象插入到托管对象上下文中。例如,当我启动“添加实体”模态时,我创建了一个托管对象并将其分配给模态。如果用户从该模式中保存,我保存上下文。如果他取消,我将删除该对象,无需保存。我现在引入了一个“导入”功能,可以切换到我的应用程序(使用URL方案)并添加一个实体。因为这些模态之一可能是打开的,所以此时保存上下文是不安全的。为模式创建的transient对象将被保存,即使用户取消,并且不能保证删除(从取消操作)将在以后保存-用户可能会退出应用程序。同样,我不能在我的应用程序退出时简单地保存。如果模式在此时打开,临时对象将被错误地保存。为了解决这个问题,我正

ios - 什么是 NSManagedObjectContext 的 performBlock : used for?

在iOS5中,NSManagedObjectContext有几个新方法,performBlock:和performBlockAndWait:。这些方法实际上是用来做什么的?它们在旧版本中替换了什么?什么样的block应该传递给他们?我如何决定使用哪个?如果有人有一些使用示例,那就太好了。 最佳答案 如果使用NSPrivateQueueConcurrencyType初始化MOC,方法performBlock:和performBlockAndWait:用于将消息发送到您的NSManagedObjectContext实例或NSMainQu

ios - -[NSManagedObjectContext 保存 :] 中的数组索引越界问题 (NSRangeException)

我的iOS应用程序刚刚因-[NSManagedObjectContextsave:]上的NSRangeException而崩溃。在任何地方都找不到其他有用的东西。我该如何解决这个问题?我没有得到任何内存地址或任何我可以使用的东西......2015-04-2214:16:38.078heavenhelp[33559:1734247]***Terminatingappduetouncaughtexception'NSRangeException',reason:'***-[__NSArrayMobjectAtIndex:]:index6beyondbounds[0..5]'***Firs

swift - Core Data 多 NSManagedObjectContext 性能难题

我有一个iOSCoreData性能问题,我还没有完全弄清楚。我的应用程序有一个相对简单的UICollectionViewController,它具有创建NSFetchedResultsController的功能,大致如下所示:funcloadCollection(collectionID:String){letfetchRequest=NSFetchRequest(entityName:"Story")fetchRequest.predicate=NSPredicate(format:"collectionID==%@ANDwasDeleted==FALSE",collectionID

iphone - NSManagedObjectContext performBlockAndWait : doesn't execute on background thread?

我有一个NSManagedObjectContext声明如下:-(NSManagedObjectContext*)backgroundMOC{if(backgroundMOC!=nil){returnbackgroundMOC;}backgroundMOC=[[NSManagedObjectContextalloc]initWithConcurrencyType:NSPrivateQueueConcurrencyType];returnbackgroundMOC;}请注意,它是用私有(private)队列并发类型声明的,因此它的任务应该在后台线程上运行。我有以下代码:-(void)te

objective-c - Apple 说 NSManagedObjectContext 归创建它的线程或队列所有时是什么意思?

似乎在11月,Apple更新了NSManagedObjectContextClassReference和CoreDataProgrammingGuide文档明确祝福串行GCD调度队列和NSOperationQueues作为同步访问NSManagedObjectContext的可接受机制。但他们的建议似乎模棱两可,甚至可能自相矛盾,我想确保自己理解正确。以前公认的观点似乎是NSManagedObjectContext只能从创建它的线程访问,并且使用串行队列进行同步是不够的;虽然串行队列一次只执行一项操作,但这些操作可能会被安排在不同的线程上,而MOC不喜欢这样。但是现在,根据编程指南,我