jjzjj

PrivateContext

全部标签

ios - 从核心数据列表中删除 NSEntityDescription 对象

我想从核心数据中删除所有NSEntityDescription对象并释放内存。reset函数对内存没有任何影响以下是我的代码-(void)generatePersons:(NSManagedObjectContext*)privatecontext{self.persons=[[NSMutableArrayalloc]init];[privatecontextperformBlockAndWait:^{for(inti=1;i这段代码[privatecontextreset];理论上将上下文设置为其基本状态,据我所知,它也会释放内存,但它不会释放内存并保持相同的内存计数

ios - 使用 privateQueueConcurrencyType 在子上下文中保存数据

从服务器下载数据后,我试图将数据保存在CoreData中。根据Apple文档,我使用父子上下文来执行保存操作,如下所示:fileprivatefuncsaveDataInLocalDataBase(_mList:[Info]?){ifmList!=nil{letmainContext=self.managedObjectContextletprivateContext=NSManagedObjectContext(concurrencyType:.privateQueueConcurrencyType)privateContext.parent=mainContextprivateCo

ios - 核心数据插入和保存缓慢

我正在从一个包含大约20000个对象的JSON文件中解析数据。我一直在运行时间分析器来找出我的瓶颈在哪里并加快解析速度,我已经设法将解析时间减少了45%,但是根据时间分析器,我有78%的时间被context.save()以及整个解析过程中的大部分重要部分都来self称为NSEntityDescription.insertNewObjectForEntityForName的地方。有没有人知道是否有任何方法可以加快速度?我目前每5000个对象对我的保存进行一次批处理。我尝试了100、1000、2000、5000、10000的分组,我发现5000在我运行的设备上是最佳的。我已经阅读了Core

ios - 线程中的核心数据保存对象与关系

我有一个类Store,其方法fetchProducts在后台工作并从json数据保存产品。classStore:NSManagedObject{funcfetchProducts(q:String){....letpriority=DISPATCH_QUEUE_PRIORITY_DEFAULTdispatch_async(dispatch_get_global_queue(priority,0)){self.saveProduct(json_data)}}}}在这个类中,我有一个方法saveProduct检查产品是否存在,然后这个产品应该更新或创建新的:funcsaveProduct(

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 - 在 MainContext 和 PrivateContext 上的异步 block 崩溃上使用 -com.apple.CoreData.ConcurrencyDebug 1

我已将-com.apple.CoreData.ConcurrencyDebug1标志添加到我的目标。问题是我有一个正在运行的后台block,当我使用NSPrivateQueueConcurrencyType或NSMainQueueConcurrencyType时崩溃我的代码:dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),^{NSManagedObjectContext*privateManagedObjectContext=[[NSManagedObjectContextalloc