草庐IT

x-coredata

全部标签

ios - 如何恢复丢失的 CoreData 模型版本?

所以,我搞砸了。我在Xcode中创建了现有CoreData模型的新版本,但不知何故从未最终提交.xcdatamodel文件(或更准确地说,是其中的contents文件)。现在,过了一会儿,该文件丢失了,我无法恢复它。尝试在xcode中打开xcdatamodel文件时出现错误“无法打开文件“内容”,因为没有这样的文件”。我想我可以聪明一点,从以前版本的.xcdatamodel文件中复制contents文件,然后把我为这次迁移添加的表加回去(幸运的是,我只添加了一个表并生成了一个类,因此再次创建表很容易)。问题是,当我在模拟器或数据已存在的设备上运行该应用程序时,出现以下错误:ErrorD

ios - CoreData 和 "Allows External Storage"选项

我正在做一个关于CoreData的教程,他们谈到了“允许外部存储”选项。文档说“启用后,CoreData会根据每个值试探性地决定是将数据直接保存在数据库中,还是将URI存储到它为您管理的单独文件中。您不能根据如果您使用此选项,则为二进制数据属性。”我理解第一部分,但我不明白“如果使用此选项,则不能基于二进制数据属性的内容进行查询”是什么意思。我觉得这很重要,但我无法理解。“您不能根据二进制数据的内容进行查询”,这是什么意思?我不知道是不是我的英语不好还是什么,但我想不通。本教程是RayWenderlich教程系列丛书中的“CoreDatabyTutorials”。我强烈推荐!

iphone - CoreData 关系延迟加载?

当我有一个名为“Book”的CoreData实体时,它与另一个实体(“Bookmark”)具有一对一的关系,我是否需要同时插入“Book”的实例和“书签”到托管对象上下文中,并手动分配关系?如果我执行以下代码来实例化“Book”的实例...Book*book=[NSEntityDescriptioninsertNewObjectForEntityForName:@"Book"inManagedObjectContext:managedObjectContext];我是否可以执行以下代码来检索其书签,而将“书签”的实例插入到相同的托管对象上下文中?book.bookmark;CoreDa

ios - NSPredicate 多个 ANY 查询与 CoreData

我试图在我的对象图中找到一个对象的所有实例,这些实例包含对单独对象组合的引用。recommendation可能包含以下三个对象中的一个或多个:damageTypeareaDamagedvalidVehicles此结构是通过导入现有系统的文件格式构建的,我无法重构对象图。我正在使用NSPredicate来查找所有recommendation对象,这些对象的damageType与选定的损坏匹配,如下所示:NSFetchRequest*fetchRequestDamages=[NSFetchRequestfetchRequestWithEntityName:NSStringFromClass

ios - 如何清除/重置一对多关系中的所有CoreData

我正在使用具有一对多关系的coreData,我有一个文件夹实体和一个文件实体。一个文件夹可以有很多文件等等。所以,我有两个ViewController,分别包含文件夹和文件的FolderViewController和FileViewController。现在我有一个modalView,它可以从文件夹和文件ViewController访问。在这个VC中,我有一个重置所有数据的按钮。所以当我点击它时,我希望所有数据都应该重置。我使用了这段代码,这个函数是在appdelegate.m中编写的,并从我的VC中调用。-(void)resetToDefault{NSError*error;//re

ios - Swift CoreData——无法将类型 'Int' 的值分配给类型 'Int16'

我声明了一个具有Int16类型的“zip”属性的CoreData实体地址。问题是,当我为该属性分配一个整数时:address?.zip=Int(zipField.text!)我收到一条错误消息,指出无法将类型Int的值分配给类型Int16。有道理(我猜)。问题是,当我尝试将该int转换为Int16时,XCode仍然在我身上爆炸:letzip:Int?=Int(zipField.text!)ifzip!=nil{letzip16=Int16(zip!)}正是我转换整数的那一行导致XCode崩溃。我在错误消息中没有真正看到任何信息,所以我不确定要尝试什么。一般来说,由于这些手机的操作系统,

ios - 更改 CoreData 模型 : retro compatibility

我一直在用coredata解决这个问题,这让我抓狂,因为它应该是直截了当的我目前正在开发这个应用程序的第一个版本,很明显我一直在这里和那里调整核心数据模型,然而,每次更改核心数据模型时,我都需要卸载应用程序并重新安装新版本。这对我来说是可以接受的,但是一旦发布,我需要能够更改更新应用程序而无需我的用户重新安装。我错过了什么,我是否需要编写一些代码来告诉核心数据如何将现有持久数据修改为新数据?谢谢你的帮助杰森 最佳答案 核心数据模型-迁移-向当前数据模型添加新属性/字段-无需重置模拟器或应用程序步骤:从编辑器创建模型版本-给它任何有意

ios - CoreData 对象到 Swift 3 中的 JSON

我正在努力将我的CoreData对象转换为JSON,以便我可以使用它发送到Web服务器。这就是我目前从CoreData获取对象的方式:funcfetchRecord()->[Record]{do{records=trycontext.fetch(Record.fetchRequest())}catch{print("ErrorfetchingdatafromCoreData")}returnrecords}我可以通过这种方式将其显示在我的tableView上:functableView(_tableView:UITableView,cellForRowAtindexPath:Index

ios - 如何使用 NSPredicate 从 CoreData 中删除选定数量的行?

我想从CoreData表中删除选定的项目列表:一些具有特定namesToDelete的人:NSError*error=nil;NSFetchRequest*request=[[NSFetchRequestalloc]init];[requestsetEntity:[NSEntityDescriptionentityForName:@"Person"inManagedObjectContext:managedObjectContext]];NSPredicate*predicate=[NSPredicatepredicateWithFormat:@"NOT(nameIN%@)",name

ios - NSDate 在 CoreData 中被保存为时间戳

我目前正在CoreData的iOS应用程序中保存日期。在核心数据中,我的日期属性是“日期”类型。在我的NSManagedObjectSubclass文件中,该属性的类型为:NSDate(这很好)。CoreData中的日期存储为:2014/05/1614:54:51,当我在SQLite3导航器中检查实际值时,它以以下形式存储:日期为421959291.293972如何获取上述日期值,是否可以将其转换回以下形式:2014/05/1614:54:51?我问这个是因为我正在尝试通过CSV文件创建数据集,并希望确保我在CSV文件中输入的所有值都被CoreData/SQLite3正确转换为正确的格