從語法上看,類方法的宣告和例項方法的宣告不同,差別在於第乙個字元。在返回型別的前面,例項方法使用的是字元 -,而類方法使用的是字元 +。
tips:標頭檔案宣告順序:例項變數宣告應該寫在最前面,然後是類檔案,接下來是初始化方法,最後是其他方法。這種排序是一種約定。
+ (instancetype)randomitem
tips:建立陣列的語法——「@「符號後面加上一對方括號,陣列中的物件寫在括號裡,用逗號隔開。這種語法只能建立不可變陣列,如果要使用可變陣列,則不能使用這種語法。
objective-c中,如果某個類方法的返回型別是這個類的物件,就可以將這種類方法成為便捷方法。
陣列物件只能儲存指向objective-c物件的指標,所以不能將基本型別的變數或c結構加入陣列物件。如果要將基本型別的變數和c結構加入陣列,可以先將它們「包裝「成objective-c物件。
objective-c物件都有乙個名為isa的例項變數,物件通過可以通過自己的isa知道自身的型別。類在建立了乙個物件後,會為新建立的物件的isa例項變數賦值,將其只回自己,即建立該物件的類。
物件只能響應類中具有相應實現方法的訊息。而物件的型別又只能在執行時才能確定,因此xcode無法在編譯判斷某個物件是否能響應特定的訊息。如果xcode判斷應用會向某個物件類傳送其無法響應的訊息,就會顯示相應的警告資訊,但是**仍然能夠編譯通過。如果應該最後想某個物件傳送了其無法響應的訊息,那麼程式就會丟擲異常(expection)。異常也成為執行時錯誤,因為異常輝仔應用執行時才會出現。
objective-c沒有提供名字空間(namespace)機制,為了更好的區分,需要為類名增加字首。
@import foundation告訴編譯器需要使用foundation框架,之後編譯器會優化預編譯標頭檔案和快取編譯結果的過程。
tips:只有蘋果提供的框架可以使用@import,如果需要匯入自己編寫的類和框架,只能使用#import
iOS程式設計 學習篇(三)
相比之前通過傳送訊息來訪問例項變數,oc提供了更加方便的機制 點語法。語法格式 訊息接受者後面加上乙個 在加上例項變數的名字。如果點語法用在複製號左邊,就表示存方法,用在右邊則代表方法。objective c中的方法分為例項方法和類方法兩種。類方法 class method 的作用通常是建立物件,或...
iOS程式設計 學習篇(五)
當程式執行某個某方法時,會從記憶體中名為棧 stack 的區域分配一塊記憶體空間,這塊空間成為幀 frame 幀負責儲存程式在方法內宣告的變數的值。堆 heap 是指記憶體中的另一塊區域,和棧是分開的。堆包含了大量無序的活動物件,需要通過指標來儲存這些物件在堆中的位址。當應用向某個類傳送alloc訊...
iOS 學習筆記 iOS程式設計 第四版
1.objective c中通過類來描述,例項變數定義前需加下劃線。如 name,date 2.通過向方法傳送訊息來呼叫方法。3.向某個類傳送alloc命令來建立該類的物件,然後傳送init訊息來初始化,如 party pa party alloc init 4.addattende 來向addat...