對於做ios的小夥伴來說,或許會經常看到這樣的語法: nsarray *ary = @[a1,a2,a3];這就是字面量語法了
字面量語法,是從objective-c 1.0開始有的,是一種不需要寫alloc及init方法來分配並初始化物件的語法,通俗一點就是可以通過字面的文字,一眼可以看出這個物件是什麼。
並不是所有的物件都可以用字面量來建立,只有以下類可以使用:nss
tring,nsnumber,nsarray,nsdictionary
舉例:nsstring *string = @" 字面量語法";
如果我們要建立乙個整形的nsnumber型別物件,常規寫法
nsnumber *number = [nsnumber numberwithint:1];
如果我們使用字面量語法:
nsnumber *number = @1;
2種語法對比,是不是字面量語法更要簡潔,沒有多餘的語法,只包含數值,而且一看可以看出這是個什麼型別的數字
nsnumber所有型別都可以使用這個語法,例如:
nsnumber *intnumber = @1;
nsnumber *floatnumber = @2.5f;
nsnumber *doublenumber = @23.5321;
nsnumber *boolnumber = @yes;
上面是常規寫法,現在用字面量寫法:
除寫法更加簡潔了外,用字面量語法建立陣列還有乙個好處,可以有效的檢查出nil物件。舉例說明:
id obj1 =@"abc";
id obj2 =nil;
id obj3 =@"def";
nsarray *arraya = [nsarray
arraywithobjects:obj1,obj2,obj3,nil];
nslog(@"%@",arraya);
我們列印發現,控制台只顯示abc,這是因為arraywithobjects:方法會依次處理各個引數,遇到nil便終止。
現在我們用字面量語法
nsarray *arrayb = @[obj1,obj2,obj3];
nslog(@"%@",arrayb);
現在我們執行程式,這時候大家會發現,報錯了~~
意思是說我們插入了乙個無效的物件
怎麼樣,這個時候大家就知道有異常,能很快的去查詢錯誤了。使用字面量建立陣列,更加安全,可以及時讓我們發現錯誤~~
nsdictionary
*dic =
@;同樣的字面量語法建立字典,也可以有效的發現nil物件。
字面量語法有個小小的侷限性,就是除了字元換以外,所建立出來的物件必須屬於foundation框架才行。不過綜述,字面量語法所帶來的好處多餘上述缺點的,可以有效的提高我們程式設計效率。
ps:純手敲啊~好累
字面量語法的使用 IOS
使用oc時,經常會用到nsstring,nsnumber,nsarray,nsdictionary,下面是關於他們的字面量語法的使用。1 字面數值 有時需要把整數,浮點數,布林值封入oc物件中 一般寫法 nsnumber num nsnumber numberwithint 1 使用字面量語法 ns...
新增的物件字面量語法
成員速寫 如果物件字面量初始化時,成員的名稱來自於乙個變數,並且和變數的名稱相同,則可以進行簡寫 方法速寫 物件字面初始化時,方法可以省略冒號和function關鍵字 計算屬性名 有的時候,初始化物件時,某些屬性名可能來自於某個表示式的值,在es6,可以使用中括號來表示該屬性名是通過計算得到的。co...
ios 多用字面量語法
使用字面量語法可以縮減源 長度,是其更為易讀。注意事項 用字面量語法建立陣列時要注意,若陣列元素物件中有nil,則會丟擲異常。用字面量陣列建立陣列,其效果等於是先建立了乙個陣列,然後把方括號內得所有物件都加到這個陣列中。例如 id obj1 obj1 id obj2 nil id obj3 obj3...