我在SWIFT的Xcode(8.3.2)中开发了一个macOS应用程序 .
我有一个CoreData模型,包含许多实体和一个标识符(myidentifier) .
我希望能够在运行时以编程方式识别模型的实体,以便我可以迭代实体并根据JSON文件中的数据存储源自一系列JSON文件的数据 .
到目前为止,我一直在创建实体,然后为每个实体编写一个类来保存和获取数据 . 它正如预期的那样完美地工作 . 但是,如果我继续这样做,我将最终得到大约50个不同的实体及其相关的类文件(请注意,有些实体使用一对多关系,大多数不使用) .
我想创建一个类,它将枚举模型的众多实体并存储相关数据(以及相关的获取例程) .
我还应该注意,我正在为每个实体使用NSManagedObject子类 .
如何获取我正在为应用程序使用的模型的NSManagedObjectModel引用?我似乎无法找到允许我这样做的正确机制 . 我可以使用模型标识符吗?
我的想法是,如果我可以使用entitiesByName,我可以使用结果[String:NSEntityDescription]然后访问我的实体并根据需要枚举 .
1 回答
你可以使用
mergedModel(from bundles: [Bundle]?)
(参见documentation here,指定Bundle.main
来获取主包 . 或者,你的NSManagedObjectContext将引用persistentStoreCoordinator
,它本身会引用managedObjectModel
.请注意,NSManagedObjectModel具有
entities
属性,因此您可以使用:而不是使用
entitiesByName
.