nsmanagedobjectcontext
全部标签 至少自iOS9以来,核心数据操作唯一未弃用的线程并发类型(不在主线程中运行)是NSPrivateQueueConcurrencyType。我现在的问题是,我想为此更改线程优先级,如下所示:...:(int)neededPriority{_queue=dispatch_queue_create("Worker",DISPATCH_QUEUE_SERIAL);dispatch_set_target_queue(_queue,dispatch_get_global_queue(neededPriority,0));有时我需要高优先级,有时低。但是当我调用[_privateContextper
我目前正在使用CoreData开发iOS应用。当应用首次启动时,会针对RESTful网络服务发出一系列网络请求。Web服务提供一系列json响应,其中可以包含超过2000条记录。然后对这些记录进行解析,将其转换为各种核心数据实体并存储在我们的SQLite持久存储中。此操作完成后,我们通过获取实体A中的所有行(例如)创建一个对象图,并创建一个我们稍后使用的对象图。出于某种原因,在遍历存储在实体A中的所有NSManagedObject时,一些NSManagedObject缺少属性值。鉴于我们在多线程环境中工作,我们确保在单独的线程上创建单独的managedObjectContexts-然而
我有一个托管对象上下文,其中有几个NSFetchedResultsController在我的应用程序中监听不同的实体,大部分情况下工作得很好。虽然我不知道如何解决以下情况:当用户单击实体对应的TableView单元格中的按钮时,我在实体上设置关系。目前,这会导致实体发生变化,并且FRC会告诉tableview重绘整个单元格,从而在默认控制状态下呈现按钮。有没有一种方法可以在不被我的FRC注意到的情况下更改实体?与暂时禁用整个FRC相比,我希望仅对特定更新(由我自己控制,例如设置或删除关系)产生这种影响,以免丢失其他更新的功能这可能同时发生。谢谢! 最佳答案
在iOSCoreData中,NSManagedObjectContext上有一个方法detectConflictsForObject:这个方法的文档说:Ifonthenextinvocationofsave:objecthasbeenmodifiedinitspersistentstore,thesavefails.Thisallowsoptimisticlockingforunchangedobjects.Conflictdetectionisalwaysperformedonchangedordeletedobjects.我有一个[contextsave],无论我是否使用detec
我在使用MagicalRecord时遇到了一个奇怪的问题。删除不会持续存在。当我删除时,NSFetchedResultsControllerDelegate正确地看到该对象已被删除。但是,如果我关闭并重新打开应用程序,该实体会重新出现。我用来删除实体的代码是:ActivityType*activityType=[_fetchedResultsControllerobjectAtIndexPath:indexPath];[activityTypedeleteInContext:[NSManagedObjectContextMR_defaultContext]];[[NSManagedOb
在将CoreData中的对象与GCD结合使用时,我需要一些帮助;我似乎得到了没有错误进入主线程的NSManagedObjects,即使我访问它们的属性也是如此。非常感谢您的帮助。这就是我正在做的事情:启动时,我需要从CoreDataDB加载人员列表,在后台进行一些自定义处理,然后重新加载表格以显示姓名。我通过仅将objectID传递到GCD队列来遵循CoreData多线程指南。但是当我在主线程上重新加载tableview时,我从来没有看到为联系人显示的名称(或其他属性),并且在仔细检查时,NSManagedObjects原来是主线程上的错误,即使我访问了各种属性cellForRowAt
当我调用方法时:-(void)removeObjectFromMediaAtIndex:(NSUInteger)idx;这是作为核心数据对象创建的文件中的默认方法之一,我收到错误消息:无法识别的选择器发送到实例。有人知道为什么会这样吗? 最佳答案 确保您的NSManagedObject子类实例是使用NSManagedObjectContext而不是直接创建的。NSManagedObject子类没有利用@synthesize属性,而是利用了@dynamic关键字,这表明访问器将在运行时创建——在本例中,由NSManagedObject
我在串行GCD队列中使用辅助managedobjectcontext,使用相同的持久存储协调器(和模型)。我遇到的问题是辅助managedobjectmodel似乎是空的——所有获取请求都不返回任何内容。我正在使用sqlite商店。我试过在主线程上做同样的事情但无济于事。代码非常简单。CoreDataUtility是一个单例,单例的manageObjectContext成员是另一个被管理的对象上下文。NSManagedObjectContext*managedObjectContext=[[NSManagedObjectContextalloc]init];[managedObject
我在尝试将托管上下文(在后台线程上运行)与我的主托管上下文(在主线程上)合并时遇到以下异常。我似乎无法在我自己的@try表达式中捕捉到异常。有没有人对这个问题有任何见解?我正在使用默认的合并策略,但我不确定这是正确的-这个问题是间歇性的-很少发生但会导致我的应用程序崩溃。ExceptionType:EXC_CRASH(SIGABRT)ExceptionCodes:0x00000000,0x00000000CrashedThread:0LastExceptionBacktrace:0CoreFoundation0x37e3b8bf__exceptionPreprocess+1631lib
为了从我为表格View单元格调用Entry的实体获取信息,我有以下代码:Entry*entry=[self.appDelegate.fetchedResultsControllerobjectAtIndexPath:indexPath];NSLog(@"timelineentrycontexts:%@and%@",[[AppDelegateapplicationDelegate]managedObjectContext],[entrymanagedObjectContext]);两个managedObjectContexts返回不同。这是我获取的结果Controller:-(NSFet