草庐IT

multi-context-coredata

全部标签

ios - CoreData - 更新模型类而不是创建新的

我在我的iOS应用程序中使用CoreData。我在创建NSManagedObject类时经常遇到问题。这是我的做法:我在.xcdatamodeld文件中创建了一个实体。创建属性和关系。选择选项Editor->CreateNSManagedObjectClass以创建.h和.m类。在.h和.m类中,我创建了一些自定义方法来获取/保存对象。到目前为止一切顺利。但是以后如果我必须更改某些属性,我会重复步骤2和3。但是这次我在步骤4中编写的所有自定义代码都会自动删除。所以我的问题是如何更新现有的类?而不是使用选项Editor->CreateNSManagedObjectClass删除我所有的自

ios - 核心数据 : parent context blocks child

我正在使用核心数据在应用程序中进行一些后台处理。后台处理是在子managedObjectContext上完成的。上下文初始化:appDelegate=UIApplication.sharedApplication().delegateas!AppDelegate//themocinappDelegateiscreatedwith.MainQueueConcurrencyTypemainThreadMOC=appDelegate.managedObjectContext!backgroundMOC=NSManagedObjectContext(concurrencyType:NSMana

ios - CoreData 嵌套上下文 : what is the proper way to save context?

我正在使用嵌套上下文模式来支持CoreData的多线程工作。我有CoredDataManager单例类,上下文的初始化是:self.masterContext=[[NSManagedObjectContextalloc]initWithConcurrencyType:NSPrivateQueueConcurrencyType];self.masterContext.persistentStoreCoordinator=self.persistentStoreCoordinator;self.mainContext=[[NSManagedObjectContextalloc]initWi

ios - CoreData 关系返回一个 _NSCoreDataTaggedObjectID

我正在通过以下关系访问核心数据对象:pArret.zzone?.libelle第一个对象与第二个对象具有一对一关系,libelle是第二个对象的属性。我收到以下错误:-[_NSCoreDataTaggedObjectIDlibelle]:无法识别的选择器发送到实例0xd00000000e30000c。我不明白这个私有(private)_NSCoreDataTaggedObjectID类是什么,为什么我没有按预期获得我的NSManagedObject子类?! 最佳答案 检查您的KVO。在我的例子中,这是因为我将addObserver与

ios - dispatch_get_current_queue() 已弃用,是否有安全 CoreData 的替代方案?

许多人问过一个标题相似但目的却截然不同的问题:CoreData要求您跟踪当前队列、当前线程和当前NSOperationQueue(如果您是NSOperation),如果您允许方法调用来自其他类(这,默认情况下,每个类都允许)。没有关于此的“可能”:这是一个硬性要求。这很好,而且通常很容易确保:NSAssert([NSThreadcurrentThread].isMainThread||myPrivateQueue==dispatch_get_current_queue(),@"Youtriedtocallthismethodfromanexternalthread,oraqueueot

ios - 在 CoreData 中设置 NSFetchRequest 的 fetchOffset 结果不一致

我有下面的方法可以取出一页CoreData实体。当我为start传递一个值时,我得到了不一致的结果。有时它会像我预期的那样进行分页,有时它真的不会。它似乎从我请求的地方附近的某个地方获得结果,但经常与其他结果交错或跳过一些。我已经通过在每次请求特定页面时记录所有结果并将结果页面与整个列表进行比较来证明这一点。调试日志如下关于如何/为什么会发生这种情况有什么想法吗?+(NSArray*)fetchMessagesForUser:(int32_t)userIdconnectionUserId:(int32_t)connectionUserIdsortASC:(BOOL)sortASCsta

iOS - CoreData 错误导致空值

当我第一次填充View时,我会这样做:self.cats=[[DataManagersharedManager]getCatsFromCoreData];//catsisanNSArrayproperty(strong)for(Cat*catinself.cats){CatThumbnailView*thumb=[CatThumbnailViewcatThumbnailView];thumb.cat=cat;UITapGestureRecognizer*tap=[[UITapGestureRecognizeralloc]initWithTarget:selfaction:@select

ios - CoreData to-many 添加错误

不确定我在这里做错了什么。School与Student之间存在一对多关系,而Student与其相反。一小段测试代码如下:@classStudent;@interfaceSchool:NSManagedObject@property(nonatomic,retain)NSString*name;@property(nonatomic,retain)NSOrderedSet*students;@end@interfaceSchool(CoreDataGeneratedAccessors)-(void)insertObject:(Student*)valueinStudentsAtIndex

ios - 当我 'po' lldb 中的核心数据对象时,x-coredata 路径是什么意思?

当我在lldb中打印核心数据对象的对象描述时,我有时会得到以下对象描述:(lldb)pomy_challenge_object(实体:Challenge;id:0x170433460x-coredata:///Challenge/t52BD558C-A8FE-4064-A8BE-217A837521E52>;数据:{...})如果我稍后打印同一个对象,我有时会看到“x-coredata”路径发生变化。(实体:Challenge;id:0x170433460x-coredata://50232AB5-7372-4628-9F00-51BDB1A5C96D/Challenge/t52BD5

ios - CoreData 设置关系给出错误'-[WeatherObservation count] : unrecognized selector sent to instance

WeatherObservation是我的数据模型中的一个实体,我试图设置它与另一个对象的关系(一对一),我通过导航Controller传入该对象。几周前它起作用了。我更改了模型中的一些其他实体,重新生成了类,并且此关系设置为NSManagedObject,而不是其他实体的类。我尝试重新生成此类几次,然后将其更改为应有的内容并将该类添加到.h,#import到.m我假设[MANAGEDOBJECTcount]消息是核心数据魔术的一部分,我不会在我的代码中的任何地方调用它。我不确定从哪里开始,该做什么,我可以在这里发布什么来帮助获得答案?我试过:weather.hiveObservati