斯坦福2013最新iOS7程序开发公开课笔记(1)
2013-12-18 20:03
239 查看
我的斯坦福2013最新iOS7程序开发公开课笔记
原文地址见博客园 http://www.cnblogs.com/noblog/p/stanford-ios7-developement-1.html
本质上,Model用来表示What is my application,在扑克匹配程序中,比如Cards,Deck或者怎么游戏逻辑,等等UI独立的部分都是在Model中,Controller控制如何将Model展示在View当中,View是非常generic的层,而是用C去控制V层。
三者之间的交互,C到M和V都是绿色的通道,应该做的,V跟M之间是红线,两者之间应该永不直接交流。M独立于V,而V需要C来指定如何。V要是到C的话,应该一种结构化的方式,因为毕竟图形界面得跟程序交互,收到外面的信号之后得能传回系统也就是C当中。结构化的方式是约定好的调用方式。第一种,也就是C里有一个target然后把这个target的action给V,每当V回调C的时候,就知道直接调用这个target了, blind simple structured way调用。这样的例子比如,按一个按钮,对应的一个action到C当中。第二种就是will/should/did的类型,当一个V的界面变化的时候,比如用户下拉列表,V应该问比如是否应该展示呢,这类的will/should/did应该用delegate protocol的方式交给C去做,这里涉及到delegation的模式。第三种,就是data source,V不应该拥有展示的数据,比如一个list展示一个歌曲列表,不应该在V层面的list保存1000首歌曲,而是应该交给C,来获取data,比如从100到150的歌曲名之类的,data source也是一种delegate,所以iOS中最常见的就是will/should/did类型的delegate以及一些这种data source的delegate,这就是V与C交互的方式。
M如何与C交互,比如M有时候来自网络数据,如果该数据更新了,如何通知C来更新V呢?做法就是用类似radio的方式,就是广播一个消息任何人都可以关注它,Notification & KVO (Key-Value-Observation)就是设定一个预先定好的更新,C只需要listen to那个信号,等一来更新,就收到了。
这样就覆盖了一个最基本的MVC交流形式,C到MV,MV之间不交互,M到C通过target action以及delegate,M到C是notification KVO,小的MVC可以组合成更大的MVC集合,比如有个tab bar点击进去之后,指定到另一个MVC。
原文地址见博客园 http://www.cnblogs.com/noblog/p/stanford-ios7-developement-1.html
本质上,Model用来表示What is my application,在扑克匹配程序中,比如Cards,Deck或者怎么游戏逻辑,等等UI独立的部分都是在Model中,Controller控制如何将Model展示在View当中,View是非常generic的层,而是用C去控制V层。
三者之间的交互,C到M和V都是绿色的通道,应该做的,V跟M之间是红线,两者之间应该永不直接交流。M独立于V,而V需要C来指定如何。V要是到C的话,应该一种结构化的方式,因为毕竟图形界面得跟程序交互,收到外面的信号之后得能传回系统也就是C当中。结构化的方式是约定好的调用方式。第一种,也就是C里有一个target然后把这个target的action给V,每当V回调C的时候,就知道直接调用这个target了, blind simple structured way调用。这样的例子比如,按一个按钮,对应的一个action到C当中。第二种就是will/should/did的类型,当一个V的界面变化的时候,比如用户下拉列表,V应该问比如是否应该展示呢,这类的will/should/did应该用delegate protocol的方式交给C去做,这里涉及到delegation的模式。第三种,就是data source,V不应该拥有展示的数据,比如一个list展示一个歌曲列表,不应该在V层面的list保存1000首歌曲,而是应该交给C,来获取data,比如从100到150的歌曲名之类的,data source也是一种delegate,所以iOS中最常见的就是will/should/did类型的delegate以及一些这种data source的delegate,这就是V与C交互的方式。
M如何与C交互,比如M有时候来自网络数据,如果该数据更新了,如何通知C来更新V呢?做法就是用类似radio的方式,就是广播一个消息任何人都可以关注它,Notification & KVO (Key-Value-Observation)就是设定一个预先定好的更新,C只需要listen to那个信号,等一来更新,就收到了。
这样就覆盖了一个最基本的MVC交流形式,C到MV,MV之间不交互,M到C通过target action以及delegate,M到C是notification KVO,小的MVC可以组合成更大的MVC集合,比如有个tab bar点击进去之后,指定到另一个MVC。
相关文章推荐
- 斯坦福大学公开课 iOS应用开发教程学习笔记(第六课)多个MVC的程序和故事版、UINavigationController、 Segues
- 斯坦福大学公开课 iOS应用开发教程学习笔记(第七课)UIToolbar、iPad 和iPhone的通用程序
- 斯坦福iOS7公开课1-3笔记及纸牌Demo
- 斯坦福iOS7公开课7-9笔记及演示Demo
- 斯坦福iOS7公开课4-6笔记及演示Demo
- 2011年冬季最新斯坦福大学公开课:iOS程序开发教程【中文字幕】
- 斯坦福iOS7公开课11笔记及演示Demo&访问HTTPS链接下载数据
- 斯坦福iOS7公开课10笔记及演示Demo
- 小程序开发笔记
- 重磅 | 微信应用号,小程序最新开发教程
- 微信小程序开发学习笔记001--认识微信小程序,第一个微信小程序
- 2011斯坦福大学iOS应用开发教程学习笔记(第七课)Pad和iPhone的通用程序
- 【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记6 init
- [开发笔记]-WindowsService服务程序开发
- AJAX 笔记1:如何开发原始的AJAX程序
- iOS菜鸟成长笔记(3)——斯坦福公开课学习(1)
- VS2013 MFC开发 对话框程序 对话框编辑器的快捷键
- WWDC 2013 Session笔记--iOS7中的ViewController切换
- WWDC 2013 Session笔记--iOS7中的ViewController切换
- 斯坦福iOS7 2013-2014秋Assignment 6的一种答案 #3