1.objc是擴充C的面向對象,開發mac osx的程式設計語言。
2.objc中的減号與加号
①減号表示一個函數、或者方法或者消息的開始(在一個類的執行個體上被調用和實施)
②加号表示其他的函數可以直接調用這個類中的方法,而不用建立這個類的執行個體
3.NS開發包
喬布斯的NextStep公司縮寫,現今mac os使用NS這套函數庫
4.#import作用如同#include,用于聲明頭檔案。
5.nil表示空指針,相當于java的null
6.objc中使用字元串,前面要加上"@",是因為在前面加上"符号",編譯器在編譯的時候會在程式中給你留出位置,這樣才能保證這個字元串不會丢失。(@是把C的字元串轉成NSString的一個簡寫)
7.開發objc類,需要建立一個頭檔案和一個實作檔案
①頭檔案(.h):包含類的執行個體變量的名稱和類型、描述方法參數和傳回值類型的方法簽名;
②實作檔案(.m):包含這些方法的實作代碼,以及對别的類不可見的,僅與實作本身相關的局部變量的聲明和使用。
8.九宮格解法原理;(右上解法)
左出右寫入、右出左寫入、上出下寫入、下出上寫入、重排置下;
9.iphone應用程式的項目基本結構
classes:裡面存放object-c類源代碼檔案(可以建立子檔案夾來組織代碼);
other sources:存放除objective-c類之外的源代碼檔案;
resources: 包含應用程式中的非代碼檔案(因為應用程式隻能在自己的沙盒中運作,不然找不到);
Frameworks:特殊的庫,可以存放庫、架構、圖像、聲音等資源;
Products:包含項目在編譯時生成的應用程式(xxx.app);
10.Info.plist檔案裡的bundle identifier(束辨別符)
它是應用程式的唯一辨別符,要始終配置,命名格式為:頂級Internet域+.+公司名稱+.+應用名稱;
11.一個在代碼裡對nib中對象(UILabel、UITextField等)的引用被稱為一個插座變量(outlet),用關鍵字IBOutlet标明(在頭檔案裡);能夠被nib中對象調用的方法稱為動作(action),用關鍵字IBAction标明(在實作檔案裡)。
12.在實作某個動作或是對象後要對這個動作或是對象後要使用release釋放記憶體。
13.IBOutlet
輸出口 使用關鍵字IBOutlet來聲明執行個體變量,并通過這個執行個體變量來引用nib中的對象;
14.-(IBAction)doSomething:(id)sender
控制某個對象執行某項動作 通過關鍵字IBAction來聲明,通過IBAction告訴interface Builder,此方法是一個操作,且可以被某個控件觸發;通常 這個操作接受一個參數,該參數被定義為id,名稱被指定為sender.(當需要傳參數的時候就通過sender來傳遞,當不需要傳參數的時候sender可以不寫的);
[email protected] (retain , nonatomic) UILable textArea;
retain是通知編譯器向配置設定給此屬性的對象發送一個保留(retain)消息,確定屬性的執行個體變量在被使用過程中不會被從記憶體中删除;
nonatomic是 建立一個互斥通路,避免讀和寫不同步(非原子性通路);
通過這個屬性聲明通路來提高執行的效率;(原子性好比如我們去銀行存錢,存進去的時候銀行賬戶就會同時增加相應的數額,有一面失敗就都回到原來的狀态);
16.記憶體管理了解
①:程式A裡有一段記憶體被成功申請完成之後,記憶體計數器就從0變為1
(這個過程是alloc);
②:然後程式B裡也要使用這個記憶體,那麼記憶體計數器從1變為2
(這個過程是retain);
③:緊接着程式A不需要這個記憶體了,那麼程式A就把這個記憶體計數器減1
(這個過程是release);
④:當系統發現這個記憶體計數器變為0,那麼就調用記憶體回收程式把這段記憶體回收(這個過程是dealloc);
17.objc使用消息機制來調用方法,消息就是一個類或者對象可以執行的動作
消息表達式:[對象或者類名字 方法名字:參數序列];
對象或者類名字:接收器,是消息的接收者;
方法名字:參數序列:要發送的消息(要執行的動作);