標籤:
先行編譯指令
1.自己寫的標頭檔最好用雙引號,而系統內建的可以用角括弧。
*************************************************
點文法
p.age= 10;
1.不是訪問age成員變數,而是調用其方法
2.其他的很多程式設計語言都有點文法,為了其他編程的程式員可以快速掌握oc,從而添加了點文法
3.編譯器在遇到點文法的時候,會自動將之轉化為:[p setAge:10];
4.故點文法的本質還是調用方法,而不是訪問成員變數(訪問成員變數就一種:通過箭頭)。
*******************************************
isa指標
在OC中,對於每個執行個體對象,其中都會有一個isa指標,isa= is a,同一個類建立出來的對象的isa指標是一樣的。
它的作用是告訴對象它是哪個類以及它的父類是誰。
這個指標只有在程式啟動並執行時候才看得見(在偵錯模式的具體對象處能夠找到)。
*******************************************
import和include的區別:
import關鍵字會對重複引用的檔案進行自動省略,而include不會。所以,import能夠避免碰到“常見但定位麻煩的重複引用標頭檔錯誤”。
在OC中,我們一般使用import來引用其他標頭檔。
**********************************
關鍵字
“@”符號:在OC中表示關鍵字。
@interface:類聲明的開始。
@implementation:類實現的開始。
@end:類聲明或者類實現的結束。
夾在@interface和@end之間的即為類的聲明,而夾在@implementation和@end之間的即為類的實現。
**************************
在OC中,self表示對象自己,它和C++中的this含義相近。super表示父類對象。
************************
繼承和重寫
類庫之間的繼承:
cocoa的架構中,大部分的類庫都是繼承自NSObject,而類庫之間還存在各種各樣的父子關係,比如所有的控制項類(UIControl、NSControl)都是繼承自響應者類(UIResponder、NSResponder);所有的多功能視圖(tableview/scrollview/webview等)都是繼承自視圖類(UIView、NSView)等。如果我們想找類庫的繼承關係,我們可以在開發文檔中找到。
************************
分類(Category)
************************
協議(Protocols)和代理(Delegation)
1.代理的引入真正意義上完全實現MVC的程式結構架構。
2.協議是對類的實現進行規約的一套標準,可以保證多個承諾實現協議的類的介面一致性。
objective-C基本知識