草庐IT

NSManagedObjectContext

全部标签

ios - 访问关系时核心数据privateQueue performBlockAndWait死锁

这个话题已经在很多论坛上讨论过,但我仍然不能完全理解performBlockAndWait是如何工作的。根据我的理解,context.performBlockAndWait(block:()->Void)将在阻塞调用者线程的同时在自己的队列中执行block。Documentation说:Yougroup“standard”messagestosendtothecontextwithinablocktopasstooneofthesemethods.什么是“标准”消息?它还说:Settermethodsonqueue-basedmanagedobjectcontextsarethread

ios - 访问关系时核心数据privateQueue performBlockAndWait死锁

这个话题已经在很多论坛上讨论过,但我仍然不能完全理解performBlockAndWait是如何工作的。根据我的理解,context.performBlockAndWait(block:()->Void)将在阻塞调用者线程的同时在自己的队列中执行block。Documentation说:Yougroup“standard”messagestosendtothecontextwithinablocktopasstooneofthesemethods.什么是“标准”消息?它还说:Settermethodsonqueue-basedmanagedobjectcontextsarethread

ios - 有没有办法弄清楚 NSManagedObjectContext 在哪个线程上?

我对NSManagedObjectContext线程的理解是,它只能在创建它的线程上执行核心数据获取请求、删除等。有什么方法可以检查NSManagedObjectContext是在哪个线程上创建的,或者在特定的执行点当前线程是否属于特定的NSManagedObjectContext?谢谢! 最佳答案 MyunderstandingofthreadswithrespecttoanNSManagedObjectContextisthatitcanonlyexecutecoredatafetchrequests,deletes,etc.,

objective-c - '+实体名称 : nil is not a legal NSManagedObjectContext parameter - Core Data

我已将所有相关代码添加到AppDelegate,我可以添加到数据模型并从applicationDidFinishLaunchingWithOptions中的数据模型中获取。当我试图在我的ViewController中写入数据模型时,我的问题就出现了。我已将此代码添加到头文件中:NSFetchedResultsController*fetchedResultsController;NSManagedObjectContext*managedObjectContext;@property(nonatomic,retain)NSFetchedResultsController*fetched

iphone - AppDelegate 中的多个 NSManagedObjectContext

通常在单线程应用程序中,主托管对象上下文将驻留在AppDelegate中,我们将通过appDelegate.mainMOC访问它。但是现在Apple引入了嵌套上下文(父和子),they'rerecommending“传递接力棒”方法:Nestedcontextsmakeitmoreimportantthaneverthatyouadoptthe“passthebaton”approachofaccessingacontext(bypassingacontextfromoneviewcontrollertothenext)ratherthanretrievingitdirectlyfro

ios - 核心数据 : nil is not a legal NSManagedObjectContext parameter

我是CoreData的新手,一直在尝试学习许多教程,但大多数教程都将所有CoreData方法都放入AppDelegate中。我读到最好远离AppDelegate并使用自定义数据模型类来管理这些方法。我创建了一个名为MyDataModel的自定义类来管理我的所有数据。我实现了样板核心数据代码。在我的一个ViewController中,我有一个使用核心数据实现一些数据的简单方法:-(void)getProfile{/**getProfile*/NSLog(@"%@",_Model.managedObjectContext);Users*user=(Users*)[NSEntityDescr

iOS - CoreData - TableViewController - NSInvalidArgumentException',原因 : '+entityForName: nil is not a legal NSManagedObjectContext

我用UITableViewController创建了一个Storyboard,然后添加了一个核心数据实体。此时应用程序构建并运行时没有错误,但UITableViewController未显示任何数据。我删除了TVC并在StoryBoard中重建,但是自从我在运行应用程序并尝试打开TVC时遇到错误:*Terminatingappduetouncaughtexception'NSInvalidArgumentException',reason:'+entityForName:nilisnotalegalNSManagedObjectContextparametersearchingfore

ios - 后台上下文中 mergeChangesFromContextDidSaveNotification 后 NSManagedObjectContext 处于不一致状态

我在CoreData中遇到了一些奇怪的行为,导致我的一个MOC最终处于不一致的状态。我在一个小样本中复制了这个问题project这是我的情况的基本概要:我有两种实体类型,管道和盒子。每个管道可以包含0个或多个盒子,每个盒子恰好是一个管道的一部分在我的示例项目中:我正在创建1个管道和3个样本框,它们都指向该管道。此示例数据是在使用NSMainQueueConcurrencyType创建的MOC上创建的我创建了一个后台MOC(`NSPrivateQueueConcurrencyType')并获取所有框并只删除其中一个。此删除导致管道更新(关系中应该少一个框)当我保存后台MOC时,我尝试将更

iphone - '+entityForName : nil is not a legal NSManagedObjectContext

当我尝试将我的数据从核心数据加载到TableViewController时出现错误。我相信这是由于managedObject没有被正确传递。但我相信我是在对didFinishLaunchingWithOptions下的AppDelegate.m中的代码进行了一些研究之后才这样做的。错误***Terminatingappduetouncaughtexception'NSInvalidArgumentException',reason:'+entityForName:nilisnotalegalNSManagedObjectContextparametersearchingforentit

ios - 魔法记录崩溃: NSManagedObjectContext Queue EXC_BAD_ACCESS KERN_INVALID_ADDRESS

我正在使用MagicalRecord进行核心数据操作。看来我在下面发布的崩溃只会发生在iOS7中。而EXC_BAD_ACCESSKERN_INVALID_ADDRESS意味着一些对象被释放。我不太确定错误在哪里。对此有什么想法吗?谢谢。Thread:Crashed:NSManagedObjectContextQueue0libobjc.A.dylib0x39d7c636objc_msgSend+211Foundation0x2fee4d9d-[NSErrordealloc]+602libobjc.A.dylib0x39d81b6bobjc_object::sidetable_relea