iOS字面量的簡(jiǎn)單使用

iOS字面量的簡(jiǎn)單使用
字面量是蘋(píng)果在2012年的開(kāi)發(fā)者大會(huì)出現(xiàn)的新特性之一. 可以幫助程序員更加高效的編寫(xiě)代碼. 在XCode4.4以后可以使用.

1. 數(shù)字(NSNumber)

簡(jiǎn)化前的寫(xiě)法:

    NSNumber *value;
    value = [NSNumber numberWithInt:123];
    value = [NSNumber numberWithFloat:123.45f];
    value = [NSNumber numberWithDouble:123.45];
    value = [NSNumber numberWithBool:YES];

簡(jiǎn)化后的寫(xiě)法:

    NSNumber *value;
    value = @123;
    value = @123.45f;
    value = @123.45;
    value = @YES;

裝箱表達(dá)式也可以采用類似的寫(xiě)法:


    NSNumber *piOverSixteen = [NSNumber numberWithDouble:(M_PI / 16)];
    NSString *path = [NSString stringWithUTF8String:getenv("PATH")];

簡(jiǎn)寫(xiě)后:

    NSNumber *piOverSixteen = @(M_PI / 16);
    NSString *path = @(getenv("PATH"));

UI有字符串表達(dá)式來(lái)說(shuō), 需要注意, 表達(dá)式的值一定不能是NULL, 否則系統(tǒng)會(huì)拋出異常.

2. 數(shù)組(NSArray)

數(shù)組的初始化方法有很多, 這里就不再一一羅列, 直接看新的寫(xiě)法.

    NSArray *array;
    array = @[];                 // 空數(shù)組
    array = @[@"a"];             // 一個(gè)對(duì)象的數(shù)組
    array = @[@"a", @"b", @"c"]; // 多個(gè)對(duì)象的數(shù)組

需要注意的是如果, 有對(duì)象為nil的話, 運(yùn)行時(shí)系統(tǒng)會(huì)拋出異常.

3. 字典(NSDictionary)

字面量寫(xiě)法:

    NSDictionary *dic;
    dic =  @{};              // 空字典
    dic = @{k1 : v1};                 // 包含一個(gè)鍵值對(duì)的字典
    dic = @{k1 : v1, k2 : v2, k3: v3};   // 包含多個(gè)鍵值對(duì)的字典
    

4. 下標(biāo)法與容器類

可以通過(guò)下標(biāo)的方式存取數(shù)組和字典的數(shù)據(jù).
對(duì)于數(shù)組:

    NSArray *array = @[@"a", @"b", @"c"];
    // 通過(guò)下標(biāo)方式獲取數(shù)組對(duì)象, 替換原有寫(xiě)法: [array objectAtIndex:i];
    id obj = array[i];
    // 也可以直接維數(shù)組對(duì)象賦值.替換原有寫(xiě)法
    array[i] = newObj;

對(duì)于字典:

    NSDictionary *dic = @{k1 : v1, k2 : v2, k3: v3}; ;
    // 獲取v2對(duì)象, 替換原有寫(xiě)法: [dic objectForKey:k2];
    id obj = dic[k2];
    // 重新為鍵為k2的對(duì)象賦值
    dic[k2] = newObj;

5. 容器類數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)化的限制

采用上述寫(xiě)法構(gòu)建的容器都是不可變的, 如果需要生成可變?nèi)萜? 可以傳遞-mutableCopy消息. 例如:

   NSMutableArray *mutablePlants = [@[@"Mercury", @"venus", @"Earth"] mutableCopy];
   NSMutableArray *mutablePlants = @[@"Mercury", @"venus", @"Earth"].mutableCopy;

總結(jié)

  1. 盡量使用對(duì)象字面量語(yǔ)法創(chuàng)建字符串, 數(shù)字, 數(shù)組和字典等.
  2. 在數(shù)組和字典中, 要使用關(guān)鍵字和索引做下標(biāo)來(lái)獲取數(shù)據(jù)
  3. 使用對(duì)象字面量語(yǔ)法時(shí), 容器類里不可是nil, 否則運(yùn)行時(shí)貴拋出異常.
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末涤浇,一起剝皮案震驚了整個(gè)濱河市鳖藕,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌只锭,老刑警劉巖著恩,帶你破解...
    沈念sama閱讀 212,542評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異蜻展,居然都是意外死亡喉誊,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)纵顾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)伍茄,“玉大人,你說(shuō)我怎么就攤上這事施逾》蠼茫” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,021評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵汉额,是天一觀的道長(zhǎng)曹仗。 經(jīng)常有香客問(wèn)我,道長(zhǎng)蠕搜,這世上最難降的妖魔是什么整葡? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,682評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮讥脐,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘啼器。我一直安慰自己旬渠,他們只是感情好告丢,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,792評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布损谦。 她就那樣靜靜地躺著,像睡著了一般颅湘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上闯参,一...
    開(kāi)封第一講書(shū)人閱讀 49,985評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音新博,去河邊找鬼。 笑死赫悄,一個(gè)胖子當(dāng)著我的面吹牛馏慨,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播熏纯,決...
    沈念sama閱讀 39,107評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼樟澜,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了秩贰?” 一聲冷哼從身側(cè)響起霹俺,我...
    開(kāi)封第一講書(shū)人閱讀 37,845評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤丙唧,失蹤者是張志新(化名)和其女友劉穎觅玻,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體胡本,經(jīng)...
    沈念sama閱讀 44,299評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡畸悬,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,612評(píng)論 2 327
  • 正文 我和宋清朗相戀三年蹋宦,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片冷冗。...
    茶點(diǎn)故事閱讀 38,747評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡贾惦,死狀恐怖敦捧,靈堂內(nèi)的尸體忽然破棺而出碰镜,到底是詐尸還是另有隱情,我是刑警寧澤绪颖,帶...
    沈念sama閱讀 34,441評(píng)論 4 333
  • 正文 年R本政府宣布,位于F島的核電站窃款,受9級(jí)特大地震影響牍氛,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜搬俊,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,072評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望餐屎。 院中可真熱鬧玩祟,春花似錦、人聲如沸空扎。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,828評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)黑忱。三九已至勒魔,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間冠绢,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,069評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工楷力, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留喊式,地道東北人岔留。 一個(gè)月前我還...
    沈念sama閱讀 46,545評(píng)論 2 362
  • 正文 我出身青樓检柬,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親何址。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,658評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容