MVC和kvo结合

SuperCpp 2012-09-12 03:22:39
我想做个小游戏,用MVC模式

M和C通过kvo联系起来,M改变,V得到通知
我有点不明白的是,V改变,M得到通知,更新M,M被修改了,然后不就反过来通知C去更新V吗?这不就变成循环了吗
...全文
133 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
SuperCpp 2012-09-14
  • 打赏
  • 举报
回复
越来越不懂了。。。。。。。。。。。。。。。。。。

[Quote=引用 3 楼 的回复:]

MVC是模式,这是相对于整个工程的架构来说的,不是一个对象、一个key的关系问题;
KVO是技术,说白了就是添加一个observer而已,这个观察者就是观察他所监视的key的值value是否改变,改变了你该做什么操作就做什么操作,把他看成MVC模式是概念模糊的问题;
[/Quote]
Hubbert 2012-09-14
  • 打赏
  • 举报
回复
MVC是模式,这是相对于整个工程的架构来说的,不是一个对象、一个key的关系问题;
KVO是技术,说白了就是添加一个observer而已,这个观察者就是观察他所监视的key的值value是否改变,改变了你该做什么操作就做什么操作,把他看成MVC模式是概念模糊的问题;
SuperCpp 2012-09-13
  • 打赏
  • 举报
回复
1. Button click 通知C去更新M中的labeltext
2. labeltext改变通过kvo通知C去更新label的UI

你说的判断source == self是在哪一步做?
还有这里的self是指哪个对象?

小弟是OC新人,求赐教


[Quote=引用 1 楼 的回复:]

1. view由button触发后通过IBOutlet在view controller调用对应的action
2. 在action中获取some label.text修改model
3. model修改后经由kvo更新UI,这里的UI不包括触发源

换句话说,触发的view controller完全没有必要observe model,只是外部关联的view controller得到mod……
[/Quote]
nonocast 2012-09-12
  • 打赏
  • 举报
回复
1. view由button触发后通过IBOutlet在view controller调用对应的action
2. 在action中获取some label.text修改model
3. model修改后经由kvo更新UI,这里的UI不包括触发源

换句话说,触发的view controller完全没有必要observe model,只是外部关联的view controller得到model变化的事项,所以一般都会在kvo中加一个source,如果self == source直接return掉,表示你自己已经处理过了。

29,027

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧