标签: nsmanagedobjectmodel

如何在框架内使用Core Data的ManagedObjectModel?

我正在尝试将我的某个应用程序的特定部分迁移到框架中,以便我可以在我的应用程序本身和其中一个新的iOS 8小部件中使用它.这部分是处理Core Data中所有数据的部分.将所有内容移到并访问它是非常简单的.我只是momd在那里访问我的文件时遇到问题.

在创建时NSManagedObjectModel我仍然尝试加载momdApple的代码模板中所示:

NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"MyApp" withExtension:@"momd"];
__managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
Run Code Online (Sandbox Code Playgroud)

不幸的是,在使用此错误访问Core Data堆栈时modelURL停留nil并因此MyApp崩溃:

2014-08-01 22:39:56.885 MyApp[81375:7417914] Cannot create an NSPersistentStoreCoordinator with a nil model
2014-08-01 22:39:56.903 MyApp[81375:7417914] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Cannot create an NSPersistentStoreCoordinator with a nil model'
Run Code Online (Sandbox Code Playgroud)

那么,在使用Core Data在框架内部工作时,采用这种方法的正确方法是什么?

frameworks core-data nsbundle ios nsmanagedobjectmodel

27
推荐指数
4
解决办法
1万
查看次数

CoreData.索引和索引之间有什么区别?

我希望加快查询我的SQL支持的CoreData实例(显示按日期排序的记录).我知道索引可以帮助减少查询时间,但有什么区别:

突出显示属性所属的实体,然后将以逗号分隔的属性列表添加到索引字段中,如下所示:

在此输入图像描述

或突出显示该属性,然后检查索引框,如下所示:

在此输入图像描述

sqlite core-data nsmanagedobject ios nsmanagedobjectmodel

12
推荐指数
2
解决办法
2981
查看次数

CoreData警告:多个NSEntityDescriptions声明了NSManagedObject子类

我突然在iOS12 / XCode 9上收到一堆警告。为什么会有多个ManagedObjectModels?该应用程序只有一个* .xcdatamodeld文件,但是模型中有多个版本。

这是iOS12 Coredata的一项新功能吗,我可以做些什么来防止此警告,还是应该忽略它?

2018-09-18 11:45:34.487073+1000 xxxxxxxxx[4422:1419983] [error] warning:     'Stats' (0x2812f1550) from NSManagedObjectModel (0x2806ff480) claims 'Stats'.
CoreData: warning:       'Stats' (0x2812f1550) from NSManagedObjectModel (0x2806ff480) claims 'Stats'.
2018-09-18 11:45:34.487084+1000 xxxxxxxxx[4422:1419983] [error] warning:     'Stats' (0x2812f3bd0) from NSManagedObjectModel (0x2806b18b0) claims 'Stats'.
CoreData: warning:       'Stats' (0x2812f3bd0) from NSManagedObjectModel (0x2806b18b0) claims 'Stats'.
Run Code Online (Sandbox Code Playgroud)

core-data nsmanagedobjectmodel ios12

5
推荐指数
2
解决办法
1815
查看次数

托管对象模型和持久对象存储之间有什么区别?

来自苹果 CoreData 框架文档,

托管对象模型:模型允许 Core Data 从持久存储中的记录映射到您在应用程序中使用的托管对象。请参阅此处

持久对象存储:持久对象存储在应用程序中的对象与持久存储中的记录之间进行映射。请参阅此处

从这些描述来看,两者的含义相同,即将持久存储记录与托管对象进行映射。

我想知道托管对象模型和持久对象存储之间的独特区别是什么。

core-data persistent-object-store nsmanagedobjectmodel

4
推荐指数
1
解决办法
4296
查看次数

如何打开现有的 .mom 文件,或者有什么方法可以查看现有 .mom 文件的结构

我已经下载了一份 iOS 源代码,捆绑包中有一个 .mom 文件。我只知道它是 NSManagedObjectModel 的“产品”。我想知道有什么方法可以探索文件中的实体,或者是否有任何代码片段来解析其结构。谢谢!

core-data ios nsmanagedobjectmodel

3
推荐指数
2
解决办法
7646
查看次数

使用未声明的类型“NSManagedObjectModel”

我正在尝试将我的代码从 Objective-C 转换为 Swift,但NSManagedObjectModel我收到此错误:

使用未声明的类型 NSManagedObjectModel。

Objective-C 中的代码:

NSManagedObjectModel *managedObjectModel;
NSManagedObjectContext *managedObjectContext;       
NSPersistentStoreCoordinator *persistentStoreCoordinator;
Run Code Online (Sandbox Code Playgroud)

我翻译成斯威夫特:

var managedObjectModel: NSManagedObjectModel?
var managedObjectContext: NSManagedObjectContext?
var persistentStoreCoordinator:  NSPersistentStoreCoordinator?
Run Code Online (Sandbox Code Playgroud)

这样对吗?

objective-c nsmanagedobjectmodel swift

0
推荐指数
1
解决办法
1998
查看次数