我如何检查一个属性是否在核心数据对象中设置? 我将所有的核心数据对象加载到一个目录中: var formQuestions = [Questions]() 而我的核心数据NSManagementObject是: @NSManaged var noticeText: String formQuestions [indexPath.row] .noticeText //加载: var fetchRequest = NSFetchRequest(entityName: "Questions") fetchRequest.predicate = NSPredicate(format: "forms = %@", currentForm!) formQuestions = context.executeFetchRequest(fetchRequest, error: nil) as [Questions] 我的属性“noticeText”可能是空的或不是,所以当我创build我的核心数据对象时,可能没有设置一些值。 (该属性在核心数据中设置为可选) 当我现在尝试certificate如果有价值,它总是给我一个“EXC_BAD_ACCESS ….” if(formQuestions[indexPath.row].noticeText.isEmpty == false) 我可以设置一个空string,当我创build我的核心数据对象,但这应该不是一个好的解决scheme。 那么如何检查(optinal)而不是设定值? 提前致谢。
我为我的iPhone应用程序使用CoreData,但CoreData不提供允许您重新sortinglogging的自动方法。 我想用另一列来存储订单信息,但使用连续的数字sorting索引有一个问题。 如果我正在处理大量的数据,重新sortinglogging可能涉及更新订购信息上的很多logging(这就像改变数组元素的顺序) 实施高效订购scheme的最佳方式是什么?
在iPhone核心数据模板中,苹果将核心数据堆栈放置在应用程序委托中。 然而,我最初的意图是将这些代码移入自己的类,其职责是处理核心数据栈的pipe理。 你通常把这个function封装在自己的类中,还是把它放在App Delegate中?
当我插入新的对象,我用下面的代码: NSManagedObjectContext *context = [appDelegate managedObjectContext]; Favorits *favorits = [NSEntityDescription insertNewObjectForEntityForName:@"Favorits" inManagedObjectContext:context]; favorits.title = @"Some title"; NSError *error; if (![context save:&error]) { NSLog(@"Whoops"); } 如何更新核心数据中的现有对象?
我的iPhone应用程序需要迁移其核心数据存储,而一些数据库相当大。 苹果的文档build议使用“多次传递”来迁移数据以减less内存使用。 然而,文件是非常有限的,并不能很好地解释如何实际做到这一点。 有人能指出我是一个很好的例子,还是详细解释如何真正把这个过程去掉?
我正在使用Xcode 6.1将现有的Objective-C电视节目应用复制到新的Swift版本,并且遇到了CoreData的一些问题。 我创build了4个实体的模型,创build了它们的NSManagedObject子类(在Swift中),并且所有文件都有适当的应用程序目标设置(对于“编译源”)。 每当我尝试插入一个新的实体时,我仍然遇到这个错误: CoreData:警告:无法为实体'Shows'加载名为'Shows'的类。 找不到类,使用默认的NSManagedObject来代替。 几点意见: 保存到Core Data时,我使用父子上下文的方式来允许后台线程。 我通过设置ManagedObjectContext使用: lazy var managedObjectContext: NSManagedObjectContext? = { // Returns the managed object context for the application (which is already bound to the persistent store coordinator for the application.) This property is optional since there are legitimate error conditions that could cause the creation of the context […]
我有一个应用程序,允许用户为他们的帐户添加一个图像。 我想知道如何使用核心数据来存储图像(从相机或照片库中获得),因为我可能会为用户提供一个备份工具,并希望将图像数据传输到服务器。 我碰到过创buildImage模型对象的devisebuild议,并与User模型对象创build了1对1的关系(因此除非需要,才能调用相关的Image对象)。 但是,我不确定如何实际存储图像,以及这在性能方面是否可能是致命的。 对于任何有此尝试的人的方法和陷阱,我将不胜感激。
我需要创buildNSManagedObject实例,与他们做一些东西,然后垃圾或存储到SQLite数据库。 问题是,我不能创build与NSManagedObject不连接的NSManagedObjectContext实例,这意味着我不得不以某种方式清除之后,我决定我不需要我的数据库中的一些对象。 为了处理这个问题,我使用相同的协调器创build了一个内存中的存储,我使用assignObject:toPersistentStore.将临时对象放在那里assignObject:toPersistentStore. 现在,我如何确保这些临时对象不能访问我从公共数据库中获取的数据? 还是我必须为这样的任务创build单独的上下文? UPD: 现在我正在考虑为内存存储制作单独的上下文。 如何将对象从一个上下文移动到另一个上下文? 只要使用[上下文insertObject:]? 在这个设置中它可以正常工作吗? 如果从对象的graphics中插入一个对象,整个graphics是否也被插入到上下文中?
我正在使用核心数据来本地保留来自Web服务调用的结果。 Web服务返回完整的对象模型,比方说,“汽车” – 可能大约有2000个(我不能让Web服务返回任何小于1或所有汽车。 下一次打开我的应用程序时,我想通过再次调用所有Cars的Web Service来刷新Core Data持久拷贝,但是为了防止重复,我需要首先清除本地caching中的所有数据。 是否有更快的方法来清除pipe理对象上下文中的特定实体的所有实例(例如“CAR”types的所有实体),还是需要查询它们的调用,然后遍历结果以删除每个实例,然后保存? 理想情况下,我可以说删除所有的实体是布拉。
由于CoreData在OS 3.0中已经可用于iPhone,它是否意味着数据持久性的答案,并取代所有直接使用SQLite ? 还有什么理由仍然使用SQLite ? SQLite和CoreData什么优点/缺点?