草庐IT

x-coredata

全部标签

ios - 删除或移除 CoreData 中的 ManagedObject

在文档和广泛的文献中,生成的用于删除/删除CoreDataforIOS中的子类托管对象的工厂方法是(void)removeXXXObject:(NSManagedObject*)value其中XXX是对应关系或者我们可以简单地使用removeObject。在我的代码中我使用了这个:Data*lastData=[[selfsortedPersonDatas]objectAtIndex:0];[selectedPersonremovePersonDatasObject:lastData];其中PersonDatas是与数据管理对象的一对多关系,我从中获取了最后一个数据(lastData来自

ios - 升级应用程序后,CoreData 是否保留数据?

CoreData会在我升级应用程序后保留用户数据吗?否则我需要编写一个带有数据库的Web服务来保存用户数据。提前致谢! 最佳答案 如果您将数据存储在应用程序的文档目录中,那么如果您只是升级应用程序,则无需更新数据库或设置。如果您从设备上删除应用程序,那么文档也会被删除,在这种情况下,您将不得不重新创建数据。 关于ios-升级应用程序后,CoreData是否保留数据?,我们在StackOverflow上找到一个类似的问题: https://stackoverfl

iphone - CoreData(IOS)对多列的唯一约束?

是否可以在iPhone应用程序的CoreData中对多列设置唯一约束?例如:有Event、EventItems、Items实体EventItems实体有一列ORDER因此EventItem的ORDER列对于与同一EVENT相关的所有实例来说应该是唯一的所以问题是:如何在coredata中设置此约束?如果它不直接支持任何有关如何以编程方式实现的建议? 最佳答案 做对于同时操作多个托管对象的任何核心数据约束,您需要考虑实现:-(BOOL)validateForDelete:(NSError**)error-(BOOL)validateF

ios - 获取时 Coredata 崩溃

我在生产应用程序中遇到了一些奇怪的核心数据错误,但我能够获得崩溃报告。它有时会崩溃并显示以下消息***errorforobject0x17e400000:Freeingunallocatedpointer***errorforobject0x17fd03730:pointerbeingreallocatedwasnotallocated这是堆栈跟踪Crashed:SQLQueue0x13ff15250fordatastore.sqliteSIGABRTABORT0x00000001839860140libsystem_kernel.dylib__pthread_kill+81libsy

ios - 如何在 CoreData 中监听特定实体的保存/更新

我尝试的第一件事是使用FetchedResultsController来解决我的问题。这是FRC的一种非典型用法,因为我没有更新TableView,我只是用它来确定实体是否正在更改,以便我知道何时保存到服务器:self.fetchedResultsController=[DocumentMR_fetchAllSortedBy:@"timestamp"ascending:NOwithPredicate:[NSPredicatepredicateWithFormat:@"report.remoteId!=nil&&dirty==YES"]groupBy:nildelegate:selfin

ios - 存储但不将 NSManagedObject 保存到 CoreData?

我在我的应用程序中有一个简短的设置过程,我创建了一个NSManagedObject来存储个人的姓名和其他详细信息,但是在这个设置过程中,我不想保存对象,直到用户在设置结束(以防万一他们出于任何原因取消设置)。那么是否可以在设置过程结束之前将包含我的信息的对象保留一小段时间,而不实际将其保存到CoreData中? 最佳答案 你也可以使用NSEntityDescription*ed=[NSEntityDescriptionentityForName:@"YourManagedObject"inManagedObjectContext:m

ios - 我可以安全地将 'CoreData could not fulfill a fault' 错误包装在 @try catch block 中吗

我理解为什么会发生此错误:当您尝试访问在另一个线程的托管对象上下文中删除的CoreData对象时,该对象因此被设置为“故障”对象,因此任何保留的引用将不再指向到一个有效的CoreData对象。我正在使用NSFetchedResultsController。我已确认所有代码均已正确实现。我有2个托管对象上下文,一个用于BG线程,一个用于主线程。我已经确认主线程订阅了NSManagedObjectContextDidSaveNotification下的通知。我已经确认,当此通知触发时,我会在主线程管理的对象上下文中执行mergeChangesFromContextDidSaveNotifi

iphone - 为什么此代码会引发 "CoreData: error: (19) PRIMARY KEY must be unique"错误?

此代码引发“CoreData:error:(19)PRIMARYKEYmustbeunique”错误。Day实体只有一个when属性是NSDate,以及一个名为tasks的多对多关系.为什么会出现这个错误?如果Day已经存储了特定日期,我获取它,否则我插入它。所以,对于每一天的对象,应该有一个不同的when属性。我不确定这是否是主键。如何解决这个问题?先感谢您。NSMutableSet*occurrences=nil;occurrences=...NSMutableOrderedSet*newSet=[NSMutableOrderedSetorderedSetWithCapacity:

ios - 为什么在尝试访问已获取对象的属性时会出现 CoreData 多线程冲突?

下面的代码在没有最后一条语句的情况下运行良好。但是,对于最后一行,Xcode停止并显示以下消息:CoreData`+[NSManagedObjectContextMultithreading_Violation_AllThatIsLeftToUsIsHonor]:NSManagedObjectContext*context=GLOBAL_appDelegate.coreDataHelper.contextBackground;[contextperformBlock:^{NSFetchRequest*fetchRequest=[[NSFetchRequestalloc]init];[f

ios - iPhone CoreData 迁移失败, "Can' t 为源存储找到模型”

我有一个使用CoreData的iPhone应用程序。我最近对数据模型做了一些小改动,现在每次打开应用程序时都会收到错误消息“无法找到源商店的模型”。我有2个版本的数据模型,我所做的唯一更改是添加了一些字段。我正在按照最初工作的指南here进行操作,然后就在今天,在添加了一些额外的字段之后,它中断了。所有附加字段都标记为可选,并且都具有默认值。迁移代码如下:NSURL*storeUrl=[NSURLfileURLWithPath:[[selfapplicationDocumentsDirectory]stringByAppendingPathComponent:@"xxx.sqlite"