草庐IT

nsmanagedobjectcontext

全部标签

iphone - 核心数据后台线程 NSManagedObjectContext 合并错误

我正在编写一个Ipad应用程序,它在一个单独的NSOperation队列中显示文章和下载新文章,并将它们插入到核心数据中。目前我有一个单独的操作上下文,在操作的主要方法中创建并使用与主上下文相同的协调器。我使用了很多建议的相同模式,即在NSManagedObjectContextDidSaveNotification的操作中进行监听,然后在主线程上下文中调用mergeChangesFromContextDidSaveNotification。问题是我收到此错误:2011-01-2707:26:02.574Zagazine[12298:307]***Terminatingappdueto

ios - Swift 2/Xcode 7.0 - 条件绑定(bind)的初始值设定项必须具有可选类型而不是 'nsmanagedobjectcontext'

刚刚从Xcode6.4更新到Xcode7.0。在我的项目中,我现在遇到了一个错误,我整晚都在尝试解决这个错误,但没有成功。错误信息是:条件绑定(bind)的初始化器必须有可选类型而不是'nsmanagedobjectcontext'错误出现在ifletmanagedObjectContext=self.managedObjectContext{在下面的代码行中两次funcpreloadData(){//RetrievedatafromthesourcefileifletcontentsOfURL=NSBundle.mainBundle().URLForResource("listofd

ios - 重置商店时核心数据崩溃 : 'Object' s persistent store is not reachable from this NSManagedObjectContext's coordinator'

在我用Swift编写的iOS应用程序中尝试删除核心数据的持久存储时,我遇到了崩溃。流程很简单:当我从应用程序注销时,我删除了商店:destroyPersistentStoreAtURL我在应用程序中使用nativeCoreData实现,每次访问托管对象都是使用performBlock/performBlockAndWait进行的。此外,这些操作在NSOperationQueue中。流程如下:退出cancelAllOperations&waitUntilAllOperationsAreFinished在执行performBlocks的队列上maxConcurrentOperationCo

iOS:Swift:核心数据:错误:+entityForName:nil 不是搜索实体名称的合法 NSManagedObjectContext 参数

我将CoreData用于Swift语言的表格View。可以启动成功,但是点击AddView中的Done按钮后,出现错误:由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“+entityForName:nil不是搜索实体名称‘OneItemCD’的合法NSManagedObjectContext参数”我不知道为什么。有人可以帮我弄清楚吗?非常感谢!这是代码。有一个添加栏按钮项。单击此按钮转移到AddViewController。在TextView中输入内容并单击“完成”按钮后,返回到TableViewController。TableViewC

ios - NSManagedObjectContext 保存可能失败的可能原因的最终列表

TL;DRversion:是否有关于-[NSManagedObjectContextsave:]可能失败的可能原因的明确列表?我正在查看CoreDataErrors.h,但不清楚哪些键与NSDetailedErrorsKey相关。背景:我正在维护一个结合Swift和Objective-C编写的交付应用程序。它使用JSQCoreDataKit。其他人最初编写了代码。我们遇到了无法重现的生产崩溃。我们可以从堆栈跟踪中得知,它在NSManagedObjectContext保存失败后的错误处理程序中崩溃,EXC_BAD_ACCESS试图将NSError记录到控制台.保存失败发生在子上下文中,我

ios - 应该在哪里创建 NSManagedObjectContext?

我最近一直在学习CoreData,特别是如何对大量对象进行插入。在学习了如何做到这一点并解决了我遇到的内存泄漏问题之后,我写了问答MemoryleakwithlargeCoreDatabatchinsertinSwift.将NSManagedObjectContext从类属性更改为局部变量并分批保存插入而不是一次保存插入后,它工作得更好。内存问题解决了,速度提高了。我在回答中发布的代码是letbatchSize=1000//dosomesortofloopforeachbatchofdatatoinsertwhile(thereAreStillMoreObjectsToAdd){//g

ios - 条件绑定(bind)的初始化程序必须具有 Optional 类型,而不是 'NSManagedObjectContext

我收到此错误消息:“条件绑定(bind)的初始化程序必须具有可选类型,而不是‘NSManagedObjectContext’。我不确定如何修复此错误。我认为错误在于“iflet”。ifletmanagedObjectContext=(UIApplication.sharedApplication().delegateas!AppDelegate).managedObjectContext{restaurant=NSEntityDescription.insertNewObjectForEntityForName("Restaurant",inManagedObjectContext:m

ios - 在不访问主线程的情况下保存 NSManagedObjectContext

我正在尝试做的事情:在不卡住用户界面的情况下使用网络API执行后台同步。我正在使用MagicalRecord但它并不是真正特定于它。确保我正确使用上下文等我真正的问题是:我的理解正确吗?最后还有几个问题。因此,MagicalRecord提供的上下文是:MR_rootSavingContextofPrivateQueueConcurrencyType用于将数据持久化到存储,这是一个缓慢的过程MainQueueConcurrencyType的MR_defaultContext对于背景,您可能希望使用MR_context()生成的上下文,它是MR_defaultContext的子级并且属于P

iphone - 卡在 NSManagedObjectContext 的保存 :

出于某种原因,有时我的应用程序会因以下代码而挂起:NSError*error;if(![self.managedObjectContextsave:&error]){NSLog(@"Couldn'tsave:%@",[errorlocalizedDescription]);}它并不总是挂起,只是有时挂起。如果我在所有异常上中断,那么Xcode将在保存调用时中断,但如果我关闭断点,它将永远挂起,不会崩溃或发生任何事情。有什么想法吗? 最佳答案 卡在任何使用ManagedObjectContext的东西上是死锁的标志。要么使用NSLoc

ios - 多个 NSManagedObjectContexts 或单个上下文和 -performBlock

长期以来,我一直在将CoreData与单个NSManagedObjectContext结合使用,所有获取、保存、后台更新操作都将通过辅助类在单个上下文中完成,我计划实现多个NSManagedObjectContext方法(这是我在大多数搜索中推荐的解决方案)。我的问题是:performBlock是否只是为该上下文执行代码?我们不能做类似下面的事情吗:-(void)checkSyncServer{dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND,0),^{//dosomethingher