最近想学习下iOS的开发,在网易公开课上找了个课程,准备先听一下这个课程,做为入门吧。

课程的名字是:斯坦福大学公开课:iPad和iPhone应用开发(iOS5)

链接:http://open.163.com/special/opencourse/ipadandiphoneapplication.html


今天听了第一课,大概讲了如下的内容:

  1. iOS overview

    iOS devided 4 layers: 

    1. core os: unix kernel and C API

    2. core service: object-oriented service API

    3. multimedia: multimedia is embed into the system design

    4. cocoa tough: user interface library, service library

  2. MVC

    devide all your classes into 3 camps: 

    Model: what your application does

    Controller: how your model is presented in the UI

    View: Controller's minions, the controllers uses it to present the model on screen

    The model-view communication:

    1. the controller can access the model

    2. the model never communicate to the controller, it defines notification to broadcast things interesting to controller


        The controller-view communication:


    1. controllers uses an outlet to talk to view

    2. view can't communicate to the controller via:

    1. target/action mechanism

    2. delegate(should/will/did)

    3. controller works as data source, delegates for model



        Controllers can talk to many models and other controllers, but view can only be controlled by only one controller,and never communicate to models.


    3. Objective-C

        a strict super-set of C

        header file as .h, source file as .m

        #import works like #include, smarter (good!)

        @interface and @end in header file

        @implementation and @end in source file

        public versus private is just it is in header or source file (good!)

            can have @interface in source file, be private

         arguments are interspersed in the name of the methods (great!)

             (void)orbitPlanet:(Planet * aPlanet):atAltitude:(double* )km;

        @property (nonatomic) double topSpeed;

        @synthesize topSpeed = _topSpeed;

         call a method

            [self topSpeed] => self.topSpeed

             [ self. nearestWormhole travelToPlanet:aPlanet atSpeed:speed]