MVC and Introduction to Objective-C 课堂笔记

来源:互联网 发布:华科软件平台 编辑:程序博客网 时间:2024/06/08 00:16

1、IOS layer-Cocoa Touch、Media、Core Services、Core OS

2、MVC——

    Model = What your application is (but not how it is displayed)

                model阵营是:你的应用是做什么的

    Controller = How your Model is presented to the user (UI logic)

                Controller阵营是:你的model如何展现在用户面前,控制如何在UI上展现model

    View = Your Controller's minions

                view是Controller的仆人,view就是controller使用的工具


    controller利用这些通用view来做model需要做的事,view应该是很通用的,利用通用的view来理解和使用这些功能。

    controller向model发消息是100%被允许的。也是用了把model展现在屏幕上的,有完全的访问权。

    controller是把model显示在屏幕上,它可以对view做任何事。(Controllers can also talk directly to their View)


    Outlet是一个表达式用来表示controller和view通信的一个属性。我们要在controller里创建outlets传到view中去。

    The Model and View should never speak to each other.因为model和用户交互界面无关。

    View(通用的)和controller(详细控制如何在屏幕展现model)之间的通信的是不可见的。view向controller通信的方法,有结构的方法,一个被称为target action,就是controller自己画一个target,然后把一个action交给它的view。

    The Controller sets itself as the View's delegate.controller把自己设为委托。

    Delegation是另一个view和controller通信的方法。

    View只是一个平面,用来显示数据,一个显示信息的平台.

    Controllers are almost always that data source (not Model).类似地,view会有一个数据源的设置,controller会回应数据源。注意,数据源的 delegation永远是controller,或者是controller指定的第三方,但不可能是model。

    Controllers interpret/format Model information for the View。controller的工作是把model的信息传达给view,响应所有的delegation。

    Model是UI独立的,不能向controller发话。

    Controller的工作来用view显示model。

3、strong:表示保存这个指针对象的内存直到结束使用。

    weak  :表示如果没人在用这个指针了,那就设为nil。

    所有的property初始值都是0.

4、obj-c比较特殊的一点是:如果你发送消息给nil,does nothing。

5、@synthesize 只为property变量分配一个指针空间,还是需要调用setter来设置(初始化)。

    self是个指向自己的指针,[self topspeed];

    [self topspeed]和self.topspeed是一样的。

等号的两边都可以用.号,等号左边的.表示调用setter,右边表示getter。

原创粉丝点击