对任何不需要保存的核心数据属性使用瞬态属性?



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

@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 上显示我的注释。 我想将这些图钉保存在某个路由实体中。 路由只会让用户命名路由。 对于我的应用程序,唯一真正重要的是纬度和经度。 由于我有纬度/经度,我总是可以使用反向地理编码器重新计算其他属性。 为了节省空间,我在想,如果我想使这个对象成为核心数据实体,我是否可以将所有不是纬度和经度的属性都设置为瞬态属性? 我读过一些例子,其中瞬态用于基于其他非瞬态属性计算的 prperty。 这是瞬态的正确使用吗? 谢谢。

在这种情况下,

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

最新更新