iOS 6 新的快捷初始化寫法

2021-06-25 09:01:29 字數 1690 閱讀 1621

轉至:

下列簡化寫法是ios6.0以後的新寫法

nsnumber

//簡化前的寫法:

nsnumber *value1;

value1 = [nsnumber numberwithint:12345];

value1 = [nsnumber numberwithfloat:123.45f];

value1 = [nsnumber numberwithdouble:123.45];

value1 = [nsnumber numberwithbool:yes];

//簡化後的寫法:

nsnumber *value2;

value2 = @12345;

value2 = @123.45f;

value2 = @123.45;

value2 = @yes;

//裝箱表示式也可以採用類似的寫法:

nsnumber *pioversixteen1 = [nsnumber numberwithdouble: ( m_pi / 16 )];

nsstring *path1 = [nsstring stringwithutf8string: getenv("path")];

//可以分別簡寫為:

nsnumber *pioversixteen2 = @( m_pi / 16 );

nsstring *path2= @( getenv("path") );

//對於字串表示式來說,需要注意的是表示式的值一定不能是null,否則會丟擲異常。

nsarray

//對於nsarray的初始化來說,有非常多的寫法,這裡就不再一一羅列,我們直接看新的寫法

nsarray *array;

array = @; //空陣列

array = @[ a ]; //乙個物件的陣列

array = @[ a, b, c ]; //多個物件的陣列

//編譯器在處理時:

array = @[ a, b, c ];

//編譯器生成的**:

id objects = ;

nsuinteger count = sizeof(objects)/ sizeof(id);

array = [nsarray arraywithobjects:objects count:count];

//注意,如果a,b,c物件有nil的話,執行時會丟擲異常,這點和原來的處理方式不同,編碼的時候要多加小心。

nsdictionary

//同樣,對於字典這個資料結構來說,有很多種初始化的方式,我們來看新的寫法:

nsdictionary *dict;

dict = @{}; //空字典

dict = @; //包含乙個鍵值對的字典

dict = @; //包含多個鍵值對的字典

//採用上述寫法構建的容器都是不可變的,如果需要生成可變容器,可以傳遞-mutablecopy訊息。例如

nsmutablearray *mutableplanets = [@[

@"mercury", @"venus", @"earth",

@"mars", @"jupiter", @"saturn",

@"uranus", @"neptune"

] mutablecopy];

nsmutabledictionary *dic=[@ mutablecopy];

Spring bean初始化方法的幾種寫法

專案路徑 下的spring 06,工程截圖 1.指明initmethod和destroymethod,新建stu類,public class stu public void mydestroy 把stu注入當容器中,並增加初始化myinit和銷毀方法mydestroy configuration c...

iOS 幾種初始化的分析比較

整天都在初始化,好幾種初始化方法,今天有時間了,就來總結一下ios中的幾種常見初始化方法。instancetype init returnself instancetype initwithcoder nscoder adecoder instancetype initwithframe cgrec...

結構體初始化的形式(6)

1.定義結構體 1 定義學生結構體 2struct student 3 2.定義時賦值 1 int main void 2 56 system pause 7return0 8 3.定義後逐個賦值 1 int main void 2 56 方法二 定義後逐個賦值 7struct student s ...