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

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

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


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

iOS overview

iOS devided 4 layers:

core os: unix kernel and C API

core service: object-oriented service API

multimedia: multimedia is embed into the system design

cocoa tough: user interface library, service library

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:

the controller can access the model

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


The controller-view communication:


controllers uses an outlet to talk to view

view can't communicate to the controller via:

target/action mechanism

delegate(should/will/did)

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]