受管对象外部的NSManagedObject子类作为普通对象

rak*_*sja 12 iphone initialization core-data objective-c

我有一个实体对象国家/地区,国家/地区名称和国家代码 它是NSManagedObject的子类,我将它与核心数据模型一起用于将其值存储到持久性存储中.

我有一个地方,相同的国家对象将用作普通对象,即我将用它来存储一些临时国家名称.

为此,我已将国家初始化为以下内容

[NSManagedObject alloc] init]
Run Code Online (Sandbox Code Playgroud)

初始化成功完成,但我无法为该对象设置任何属性.因此我做了一个探索.在那里我发现,根据文档不支持NSManagedObject的init.

我不知道如何使用NSManagedObject Country和CoreData以及普通的Object.

bbu*_*bum 11

NSManagedObject类文档的第2段概述:

托管对象与实体描述(NSEntityDescription的实例)相关联,该实体描述提供有关对象的元数据(包括对象表示的实体的名称及其属性和关系的名称)以及跟踪更改的托管对象上下文到对象图.正确配置托管对象以与Core Data一起使用非常重要.如果直接实例化托管对象,则必须调用指定的初始值设定项(initWithEntity:insertIntoManagedObjectContext :).

从方法的文档:

要点:此方法是NSManagedObject的指定初始值设定项.您不应仅通过发送init来初始化托管对象.

文档实际上非常好.

您不希望尝试在可行的CoreData堆栈之外使用NSManagedObject.NSManagedObjects非常明确地设计为在正确配置的Core Data环境中工作.如果您需要临时实例,可以创建内存存储或在常规存储中创建一个,只是不保存更改而不先删除它.