我在游戏中突破了以下模型:
我也有以下观点:
我的问题是,当我更改模型中的属性时,我还必须在视图中更改属性。例如:
球模型:
@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
Ball View:
@interface BallView : UIView
@property (strong, nonatomic) UIColor *color;
@property (nonatomic) int radius;
@end
当模型的属性发生变化时,我会有位置或颜色。我必须在视图中更新这些相同的属性。我不应该在模型中跟踪位置和颜色吗?
答案 0 :(得分:0)
我认为MVC的主要观点是随着时间的推移可维护性。如果您明天决定需要完全不同的游戏视图,那么模型代码可以保持不变,因此您可以专注于修改视图部分。
此外,如果你知道你需要一些关于游戏状态的数据,你知道在哪里可以找到它 - 在模型中。例如,如果他有兴趣看到你打破积木,你可能想通过互联网将球的位置传送给你的朋友。
正如你可以从最后两段猜测的那样,你确实应该存储和更新模型中球的位置和颜色。该视图不应该是应用状态的所有者。