草庐IT

x-coredata

全部标签

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

ios - CoreData - 多个持久存储

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭7年前。Improvethisquestion我需要一些帮助来理解CoreData。假设我安装了MagicalRecords和RestKit,我还有一个服务器,它可以返回一些posts。然后我需要将其中一些posts保存到设备内存中,以便用户稍后可以阅读该帖子(即使没有互联网连接)。为了不浪费内存,很明显我应该使用内存存储,我也这样做了。但是为了保存帖子,我肯定需要SQLite或其他东西,这让我真的很无奈。问题是,Apple并没有提供太多关于如何处理

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

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

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