初始化 指定初始化

2021-07-03 13:00:10 字數 1093 閱讀 3979

+(id) alloc;

物件的誕生過程,主要是從作業系統獲得一塊足夠大的記憶體,以存放該類的全部例項變數,並將其指定為存放記憶體物件的實力變數的位置。

alloc方法同時將這塊記憶體全部設定為0。結果是:bool變數初始化為no,所有的int型別變數為0,float變數為0.0,所有的指標為nil.objective-c中有兩種建立物件的不同方法

- (id)init;

初始化的功能是保障我們的例項變數是可用的完整的物件,如:我們在初始化中給類中依賴的其他的例項變數賦值

有兩種初始化思想,第一種初始化方法中將所有相依賴的物件全部建立並賦值,「開箱即用」;第二種是惰性賦值,就是在初始化的時候先佔位,然後在使用的時候,再確認具體的值。這兩種方法需要根據具體的業務來進行取捨。

初始化方法編寫格式:

- (id)init

}

剛剛分配(alloc)的物件需要經過初始化才能使用
car *car = [[car alloc] init];  

//但是不能這樣寫:

`car *car = [car alloc];[car init];//wrong`

原因是初始化方法返回的物件可能與分配的物件不同

為什麼init方法會返回不同的物件呢?

諸如nsstring和nsarray這樣的類實際上是類簇,由於init方法可以接收引數,因此,其**能檢查接收的引數,並決定返回類簇中哪乙個類的物件更合適。比如,引數是 文字和引數是阿拉伯數字,返回的可能就是不同的類

編寫初始化

`if (self = [super init])

return

self;

}- (id)initwithpressure:(float)p

return

self;

}- (id)initwithtreadth:(float)t

return

self;

}//指定初始化方法

- (id)initwithpressure:(float)p andtreadth:(float)t

return

self;

}}

結構體初始化 指定初始化

參考 c99支援結構的指定初始化專案,其語法與陣列的指定初始化專案近似。只是,結構的指定初始化專案使用點運算子和成員名 而不是方括號和索引值 來標識具體的元素。例如,只初始化book結構的成員value,可以這樣做 struct book surprise 可以按照任意的順序使用指定初始化專案 st...

初始化 1 預設初始化 列表初始化

初始化的基本概念 事實 初始化和賦值是兩個完全不同的操作。初始化,是建立變數時賦予其乙個初始值。賦值,是把物件的當前值擦除,用乙個新值代替。列表初始化 p39 作為c 11新標準的一部分,用花括號 來初始化變數得到了全面應用。出於某些原因,這種初始化的方式叫做列表初始化。現在,無論是初始化物件還是某...

初始化 MyBatis初始化之載入初始化

在mybatis初始化過程中,大致會有以下幾個步驟 1.建立configuration全域性配置物件,會往typealiasregistry別名註冊中心新增mybatis需要用到的相關類,並設定預設的語言驅動類為xmllanguagedriver 3.構建defaultsqlsessionfacto...