Objective-C 日記⑧ 對象初始化

來源:互聯網
上載者:User

OC中建立對象的方法有兩種:

  [類名 new]

  [[類名 alloc] int]


分配和初始化是兩個分離的操作:來做NSObject的類方法alloc為對象分配一塊記憶體地區並將其清零,執行個體方法init用於獲得一個對象並使其運行

一、指派至

  分配:allocaton [,æləu'keiʃən] n. 分配,配置;安置:從作業系統獲得一塊記憶體並將其指定為存放對象執行個體變數的位置

    alloc:某個類發送alloc訊息時就是為該類分配一塊足夠大的記憶體,以存放該類的全部執行個體變數,同時alloc方法分配這塊記憶體初始化都為0。例如:所有的BOOL類型變數初始化為NO,所有的int類型被初始化為0,所有的float類型變數被初始化為0.0,所有指標被初始化為nil。

  注意

    對象必須先分配再初始化最後才能使用

二、初始化對象

  1、初始化initialization [i,niʃəlai'zeiʃən, -li'z-] n. 初始化;賦初值 :從作業系統中取得一塊記憶體用於儲存物件(初始化)

  使用方式:
    Car *car= [[Car alloc] init];

  

  2、編寫初始化方法  

-(id) init{    if(self=[super init]){        engine=[Engine new];        tires[0] =[Tires new];        tires[1]=[Tires new];        tires[2]=[Tires new];    }    return (self);}

說明:

  該聲明中最新啟動並執行是[super init],它的作用是使超類完成它們自己的初始化工作,之後使子類有機會實現初始化(如果[super init]不為nil)。最後將[super init]傳回值賦給self。

  記住:這個賦值操作只會影響該init方法中self的值不會影響該方法以外的任何內容

 

三、初始化函數

定義:

  指定初始化函數:通常接受參數最多的初始化方法最終成為指定初始化函數

規則:

  1、不需要為你自己的類建立初始化函數方法

  2、如果構造一個初始化函數則一定要在你自己的指定初始化函數中調用超類的指定初始化函數

  3、如果初始化函數不止一個,則要選擇一個作為初始化函數。被選定的方法應該調用超類的指定初始化函數

  

四、總結

  在初始化方法中,需要調用自己的指定初始化函數或超類指定的初始化函數。一定要將超類的初始化函數的值賦給self對象並返回給初始化方法的值。超類可能決定返回一個完全不同的對象。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.