最近想学习下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]