轉至:
下列簡化寫法是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 ...