这可能是一个完全愚蠢的问题,但我是CD noob ......
我有一个物体通过定义左上角和右下角来跟踪地图上的矩形点,就像这样......
@property (nonatomic) float latitudeNorth; // same as "northwest"
@property (nonatomic) float latitudeSouth; // same as "southeast"
@property (nonatomic) float longitudeEast; // same as "southeast"
@property (nonatomic) float longitudeWest; // same as "northwest"
现在我需要再添加四个点,以便我们可以使用多边形而不是纯矩形。所以我想添加这个......
@property (nonatomic) float latitudeNorthEast;
@property (nonatomic) float latitudeSouthWest;
@property (nonatomic) float longitudeNorthEast;
@property (nonatomic) float longitudeSouthWest;
这些数据点是短暂的,只有在应用程序运行时才存在。然而,它们最初是在xcdatamodeld中构建的。这是一个问题吗?或者我发现只是添加其他属性并按原样使用旧的xcdatamode? p>
答案 0 :(得分:1)
我完全取决于你。
如果您有多个实体被多次获取并再次保存,并且每次获取短暂属性时都需要,那么您必须在数据库中保留它们。
但是如果你在获取和保存Object时只需要它们,你可以在课堂上处理它们,而不需要将它们放入数据库中。
并非数据库中的每个项目都必须位于提取的类中;)
但是大多数属性也会被保存,因为它们必须通过其他服务进行更新,或者必须在其他视图中显示这些更新。或者也许是因为你不想一直保留属性或者再次获取它们(即在tableView.reloadData之后)并且不想丢失计算结果
答案 1 :(得分:0)
您可以在托管对象子类中声明其他属性。当您从持久性商店加载对象时(当您关闭应用并再次打开它时,值将消失),它们不会被初始化,但您可以解决这个问题。但是,有更好的方法可以做到这一点。例如,您可以编写在现场计算值的方法:
-(float)latitudeNorthEast;
-(float)latitudeSouthWest;
-(float)longitudeNorthEast;
-(float)longitudeSouthWest;
在你的情况下,这些方法所做的就是返回其他一个属性值,所以这似乎是要走的路。