我有以下的模型在我的突破喜欢游戏:
我亦有以下意见:
我的问题是,当我改变模型中的属性时,我也必须改变视图中的属性。例如:
球模型:
@interface Ball : NSObject
@property (nonatomic, strong) NSNumber *radius;
@property (nonatomic, strong) NSNumber *xSpeed;
@property (nonatomic, strong) NSNumber *ySpeed;
@property (nonatomic, strong) NSNumber *xDirection;
@property (nonatomic, strong) NSNumber *yDirection;
@property (nonatomic) CGPoint location;
@property (nonatomic, strong) UIColor *color;
@end
球视图:
@interface BallView : UIView
@property (strong, nonatomic) UIColor *color;
@property (nonatomic) int radius;
@end
当模型的属性发生变化时,我就会有这样的位置或颜色。我必须在视图中更新这些相同的属性。我不应该跟踪我的模型的位置和颜色吗?
发布于 2012-07-01 21:51:38
我认为MVC的要点是随着时间的推移可维护性。如果您决定明天需要一个完全不同的游戏视图,则模型代码可以保持不变,因此您可以专注于修改视图部分。
此外,如果你知道你需要一些关于游戏状态的数据,你知道在哪里可以找到它-在模型中。例如,如果你的朋友有兴趣观看你的破门而入,你可以通过互联网把球的位置传送给他。
正如您可能从最后两段中猜测到的那样,您确实应该存储并更新模型中球的位置和颜色。视图不应该是应用程序状态的所有者。
https://stackoverflow.com/questions/11262776
复制相似问题