Tag: 核心数据

无法创build具有nil模型错误的NSPersistentStoreCoordinator

我有一个完美运行的coreData datamodel文件。 由于一些特殊的要求,我删除了旧的datamodel文件,并创build了完全相同的实体的另一个datamodel文件。 以前的dataModel 实体没有变化 。 我已经把它作为一个不同的包的一部分,并从该包中引用它。 创buildmanagedObjectModel的代码 if (managedObjectModel_ != nil) { return managedObjectModel_; } NSBundle *newBundle = [NSBundle bundleWithURL:[[NSBundle mainBundle] URLForResource:@"dataBundle" withExtension:@"bundle"]]; NSString *modelPath = [newBundle pathForResource:@"DataHouse" ofType:@"momd"]; NSURL *modelURL = [NSURL fileURLWithPath:modelPath]; managedObjectModel_ = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL]; return managedObjectModel_; 该应用程序运行良好,直到一段时间,突然(随机)我得到一个错误说 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Cannot create an […]

在复杂对象上定制NSSortDescriptor

这是我的第一篇文章,如果我不尊重所有的惯例,尽pipe我会尽我所能。 我总是find解决我的问题的方法,但是我完全停留在一个相当复杂的cocoa问题上。 我想在CoreData对象的列表上实现一个复杂的sorting。 我有一个由Book对象组成的目录,它可以是佐贺(第一本书及其续集)的一部分。 简化的结构如下所示: @interface Book : NSManagedObject @property (nonatomic, retain) NSString * title; @property (nonatomic, retain) NSNumber * tomaison; //volume numbering @property (nonatomic, retain) Saga *fromSaga; @interface Saga : NSManagedObject @property (nonatomic, retain) NSString * title; 我正试图在我的CoreData数据库,在书上执行一个查询: NSEntityDescription *entity = [NSEntityDescription entityForName:@"Book" inManagedObjectContext:context]; 我需要三个步骤来sorting: 1)根据本书的stream派(不包括在上面的代码中,因为它不需要) NSSortDescriptor* mainSort = [[NSSortDescriptor alloc] initWithKey:@"ofGenre.title" ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)]; […]

NSFetchedResultsController的节名称与pipe理对象值不匹配

我正在使用一个NSFetchedResultsController来填充一个UITableView结果从一个中等规模的核心数据存储约1500个实体。 结果控制器是相当标准的 – 对于这种设置,潜在错误的一些“热点”是不正确的。 在同一个(主)线程上创build的托pipe对象上下文与其上的一样 没有使用caching(因为sorting频繁变化) sectionNameKeyPath用于将结果拆分成多个部分 然而,我的部分结果非常奇怪。 例如,考虑用于设置节标题视图的标题的方法: – (NSString *)titleForHeaderInSection:(NSInteger)section { id <NSFetchedResultsSectionInfo> sectionInfo = [[self.resultsController sections] objectAtIndex:section]; return [sectionInfo name]; // <——- Stopped at breakpoint here } 我已经停在指定的行使用断点,并使用GDB,检查以下内容: (gdb) po [[self resultsController] sectionNameKeyPath] reviewDateString (gdb) print section $11 = 1 (gdb) print (int) [sectionInfo numberOfObjects] $12 = 4 (gdb) po [sectionInfo name] […]

RestKit:无法使用coredata执行映射

我正在使用rest套件0.20.3和Xcode 5.如果没有核心数据,我可以执行所有rest套件操作,但是当我用核心数据尝试过时,由于某些原因,我甚至无法执行GET问题。 我无法弄清楚。 我是新的核心数据。 所以请帮助。 这是我的代码: AppDelegate.m @implementation CardGameAppDelegate @synthesize managedObjectContext = _managedObjectContext; @synthesize managedObjectModel = _managedObjectModel; @synthesize persistentStoreCoordinator = _persistentStoreCoordinator; – (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { RKLogConfigureByName("RestKit", RKLogLevelWarning); RKLogConfigureByName("RestKit/ObjectMapping", RKLogLevelTrace); RKLogConfigureByName("RestKit/Network", RKLogLevelTrace); RKObjectManager *objectManager = [RKObjectManager managerWithBaseURL:[NSURL URLWithString:@"http://192.168.1.3:3010/"]]; RKManagedObjectStore *objectStore = [[RKManagedObjectStore alloc] initWithManagedObjectModel:self.managedObjectModel]; objectManager.managedObjectStore = objectStore; RKEntityMapping *playerMapping = [RKEntityMapping mappingForEntityForName:@"Player" inManagedObjectStore:objectStore]; [playerMapping […]

清除核心数据中的上下文:重置vs删除注册的对象?

我正在寻找这个post,但我不完全明白…有什么区别: [context reset]; 和: for (NSManagedObjectID *objId in objectIds) { [context deleteObject:[context objectWithID:objId]]; } 还是他们是相当的? 谢谢

当涉及多个设备时,CoreData iCloud Migration会“丢失”数据

我最近有一些更新我的应用程序的主要问题。 许多用户在迁移到最新版本后抱怨dataloss。 几个小时后,我仍然不确定发生了什么,但我有一个理论,我想确认。 在苹果公司的文档中说: 迁移和iCloud 对于与给定的NSPersistentStoreUbiquitousContentNameKey关联的每个模型版本,对商店的更改都将被独立logging和保存。 如果模型版本匹配,则使用给定的NSPersistentStoreUbiquitousContentNameKeyconfiguration的持久性存储只能与其他设备数据上的存储同步数据。 如果将使用NSPersistentStoreUbiquitousContentNameKey选项configuration的持久性存储迁移到新的模型版本,则商店的源自当前设备的更改历史logging也将被迁移,然后与任何其他使用该新模型版本configuration的设备合并 这是否意味着当我有多个设备并迁移第一个。 所有非源自该设备的数据都会“丢失”,因为型号版本不再匹配,直到其他设备也更新到最新版本,并且其数据和更改历史logging被迁移到新的型号版本。 因为那似乎是我能复制问题的一个风景。 这是真的吗? 任何帮助和见解,赞赏…

Xcode 8无法打开Model.xcdatamodeld

我正在使用Xcode 8.0(8A218a)运行macOS Sierra(Build 16A320),并将我所有的代码迁移到Swift 3。 我无法打开我的Model.xcdatamodeld文件了。 在项目导航器中select它不会打开“核心数据模型编辑器”视图(不知道它是什么)。 我已经尝试重新启动Xcode,但它不工作。 我已经尝试删除派生的数据,清理,不起作用。 我试过双击,不起作用。 Model.xcdatamodeld在项目导航器视图中是可见的,但不能与它交互 (除了右击), 当我点击或双击它时什么都不会发生 。 编辑:问题解决了,看我下面的答案

在运行期间dynamic创build核心数据实体

我需要能够在运行时创build新的核心数据实体。 我已经编写了代码以编程方式创build对象,但是,由于模型是不可变的,我无法在运行时添加实体。 我的问题是类似于这个职位,但没有令人满意的答案: 如何dyanmic通过CoreData模型创build一个新的实体(表)? 有关更改核心数据模型的文档解释: 被pipe对象模型是可编辑的,直到它们被对象图pipe理器(pipe理对象上下文或持久存储协调器)使用。 这使您可以dynamic创build或修改它们。 但是,一旦使用了模型,就不能改变。 这是在运行时强制执行的 – 当对象pipe理器首先使用模型获取数据时,整个模型变得不可编辑。 在该点之后,任何试图改变模型或其任何子对象的尝试都会引发exception。 如果您需要修改正在使用的模型,请创build副本,修改副本,然后丢弃旧模型的对象。 然而,我不清楚这是什么意思 – 整个核心数据模型不能改变一旦使用持久性存储协调器或不能改变个体实体的属性等。 要清楚,我不想改变我现有的实体的属性,我只是想添加新的实体。 我不得不使用迁移来添加新的实体,这似乎很奇怪。 有什么想法吗? 谢谢!

– :无法识别的select器发送到实例0x7490da0'

我知道错误发生在这条线上,因为应用程序工作得很好,这条线被注释掉了: controller.managedObjectContext = self.managedObjectContext; 错误是: 终止应用程序,由于未捕获的exception'NSInvalidArgumentException',原因:' – [UITableViewController setManagedObjectContext:]:无法识别的select发送到实例0x7490da0' fibroMappAppDelegate.h // // fibroMappAppDelegate.h // fibromapp // // Created by jamie mcallister on 09/08/2013. // Copyright (c) 2013 Jamie McAllister. All rights reserved. // #import <UIKit/UIKit.h> @interface fibroMappAppDelegate : UIResponder <UIApplicationDelegate> @property (strong, nonatomic) UIWindow *window; @property (readonly, strong, nonatomic) NSManagedObjectContext *managedObjectContext; @property (readonly, strong, nonatomic) […]

序列化/存储UIView及其子视图

我是一个相对较新的iOS开发人员,我以前的大部分经验来自.NET。 我的应用程序是一个像系统的canvas,有一个父UIView,其中包含所有的对象,用户放置/调整/等作为子视图。 我希望能够将这些职位/configuration保存到指定的文件。 在.NET中,我会简单地inheritanceUIView,给它一个“标题”属性,然后将其序列化到文件,然后反序列化它们加载它们,但在cocoa我很迷茫。 最初我以为我可以做到这一点使用NSCoding,但这似乎不是一个很好的解决scheme,多个文件保存。 所以我看了核心数据,但我不知道如何创build像UIView现有的Cocoa UIKit类的核心数据对象。 我花了一段时间search一下,找不到任何关于这种困境的信息。 我应该使用什么,最好的方法是什么?