iPhone:核心数据保存类对象
我在核心数据中有一个称为位置的实体。在这里面我有几个字段,比如日期。但是,我还想在其中保存一个我创建的名为Annotation的类对象。因为它是我创建的自定义类对象,所以我将使用什么类型的属性iPhone:核心数据保存类对象,iphone,core-data,many-to-many,mkannotation,Iphone,Core Data,Many To Many,Mkannotation,我在核心数据中有一个称为位置的实体。在这里面我有几个字段,比如日期。但是,我还想在其中保存一个我创建的名为Annotation的类对象。因为它是我创建的自定义类对象,所以我将使用什么类型的属性 Location (object) |__ Date |__ Annotation (MKAnnotation protocol) 将类添加为核心数据类会更容易,然后您可以将两个类之间的关系作为一对一的关系。但是,您可以使用类型binary data作为属性类型,并在其中存储所需的任何数据。(我有时用它
Location (object)
|__ Date
|__ Annotation (MKAnnotation protocol)
将类添加为核心数据类会更容易,然后您可以将两个类之间的关系作为一对一的关系。但是,您可以使用类型binary data作为属性类型,并在其中存储所需的任何数据。(我有时用它来存储c结构)您只需要使用NSData类来包装对象并设置属性 您有两个选择:
注释
类符合NSCoding
协议(或者,如果您愿意编写一个NSValueTransformer
来将自定义类转换为NSData
实例,您可以在核心数据实体中使用可转换属性。核心数据将使用指定的NSValueTransformer
为您自动序列化/反序列化注释
实例。注释
实体。您必须编写自己的代码才能将CLLocationCoordinate2D
分配给实体。您可能会使用两个double
s创建一个持久性支持,然后为CLLocationCoordinate2D
编写setter/accessor(1)的优点是更简单(如果您的类符合
NSCoding
)。(2)的优点是您可以查询实体内的数据,即使使用SQLite持久存储。如果您使用(1),数据对SQLite查询引擎是不透明的,因此您无法使用SQLite后端对其进行查询。好的,但由于我必须为注释创建属性,并且坐标类型是CLLocationCoordinate2D,我如何保存它?我个人会选择第二个。而@mzarra肯定知道。我个人也会重新选择建议采取长远的眼光,选择第二种选择。