在不需要保存的任何Core Data属性上使用transient属性?

时间:2013-09-27 02:21:20

标签: ios core-data

我正在尝试了解瞬态属性。我有这个对象:

@interface AddressAnnotation : NSObject <MKAnnotation>

@property (nonatomic, copy) NSString *address;
@property (nonatomic, copy) NSString *city;
@property (nonatomic, strong) NSNumber *latitude;
@property (nonatomic, strong) NSNumber *longitude;
@property (nonatomic, assign) CLLocationCoordinate2D coordinate;
@property (nonatomic, strong) NSString *state;
@property (nonatomic, strong) NSString *street;
@property (nonatomic, strong) NSString *zip;
@property (nonatomic, strong) NSString *name;

我用它来在MKMapView上显示我的注释。我想在某些Route实体中保存这些引脚。路由只会让用户为路由命名。对于我的应用程序,唯一真正重要的是纬度和经度。我可以随时使用反向地理编码器重新计算其他属性,因为我有lat / long。为了节省空间,我想如果我想让这个对象成为一个核心数据实体,我可以制作所有不是纬度和经度瞬态属性的属性吗?我读了一些例子,其中瞬态被用于基于其他非瞬态属性计算的属性。这是瞬态的正确使用吗?感谢。

1 个答案:

答案 0 :(得分:0)

您可以在示例中应用瞬态属性。从我的角度来看,您仍然可以在核心数据中保留一些属性,以避免冗余查询以供以后使用。例如,您可以使用反向地理编码的地址来获取经度和纬度的实际地址。但是每次使用反向地理编码器时,您都会让用户等待查询地址。如果该属性需要一些计算或等待连接,我宁愿将属性保留在核心数据中。