iOS 6 新的快捷初始化寫法

來源:互聯網
上載者:User

標籤:

轉:http://www.2cto.com/kf/201408/328974.html

 

下列簡化寫法是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[] = { a, b, c };

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

array = [NSArray arrayWithObjects:objects count:count];

//注意,如果a,b,c對象有nil的話,運行時會拋出異常,這點和原來的處理方式不同,編碼的時候要多加小心。

 

NSDictionary

 

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

NSDictionary *dict;

dict = @{}; //空字典

dict = @{@"key1":@"value1" }; //包含一個索引值對的字典

dict = @{ @"key1" : @"value1", @"key2" : @"value", @"key3" : @"value3" }; //包含多個索引值對的字典

 

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

NSMutableArray *mutablePlanets = [@[

@"Mercury", @"Venus", @"Earth",

@"Mars", @"Jupiter", @"Saturn",

@"Uranus", @"Neptune"

] mutableCopy];

 

NSMutableDictionary *dic=[@{ @"key1" : @"value1", @"key2" : @"value", @"key3" : @"value3" } mutableCopy];

iOS 6 新的快捷初始化寫法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.