Ps. 在寫本篇文章時,本人已學過c、c++,c#也有略微接觸,所以oc的學習心得,也是以已學的爲基礎,來總結。
1、#include 變 #import;printf 變 NSLog;別漏了,還有一個@,寫helloworld的感觸,變化不大,還能適應。
2、bool類型,NO爲0,YES爲1。
3、撇掉函數的概念,用類的方法來命名。類和類的方法格式爲
@interface ClassName
{
}
- (type) FunctionName:(type) para1 (type) para2;
@end
@implementation ClassName
{
}
- (type) FunctionName:(type) para1 (type) para2
{
}
@end
4、實例化對象和調用方法,爲
id object = [ClassName new];
[object FunctionName:para1 para2];
5、繼承。
@interface ClassName:ClassName
奇怪的是,oc不支持多繼承。
子類調用超類方法時,用[super a];
但如果要調用超類的超類的方法,就糾結了,一個囉嗦的方法是在超類的方法裏面調用超類的超類的方法,但這明顯比C++還複雜。但也有人說這樣的話,不如不要這麼繼承,而是複合那兩個超類。
6、引用
如果在類定義中通過複合的方式,來引用其他類,那麼oc支持一種全新的方式,@class ClassName,通過這樣,告訴編譯器這個類是真正存在的。而如果是繼承某個超類,就無法用這種方式了,還是要#import,因爲編譯器需要知道該超類的所有定義信息,然後去檢查子類繼承是否有錯。