控制对象属性变化的推荐方法是什么
假设我们有以下界面:
@interface ColoredView : NSView {
NSColor *color;
}
@property (copy) NSColor *color;
- (id)initWithColor:(NSColor *)aColor;
@end
我们希望视图在颜色更改时显示动画,即动画应在颜色更改后立即触发。
问题是实现触发逻辑的最佳位置是什么:setter、observeValue 还是其他?
Assume we have the following interface:
@interface ColoredView : NSView {
NSColor *color;
}
@property (copy) NSColor *color;
- (id)initWithColor:(NSColor *)aColor;
@end
And we want view to show an animation whenever color is changed i.e. the animation should trigger just after color is changed.
The question is what is the best place to implement trigger logic: setter, observeValue or something else?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果可以的话,在设置器中(使用例如通知),否则使用 KVO。 KVO 理论上更好(两个类之间的耦合很少),但可能会带来一些惊喜。
In the setter (using, e.g., notifications) if you can, otherwise using KVO. KVO is nicer in theory (very little coupling between the two classes) but can come with a few surprises.