簡介: llvm4.0 更新(在xcode4.4引入)中,新增了一些新的簡便**書寫的方法
新增文字的數字,陣列,字典,以及表示式的語法
得益於 llvm 編譯器 4.0 的更新,增加了許多新特性,其中包括更方便的**輸入。這一更新可大大提高寫**的效率。這要在定義時使用@符號,正如nsstring定義操作一樣。
1. 所有的 nsnumber 表達
從 xcode 4.4 起,所有的 [nsnumber numberwithint: 10] 之類的表達現在都可以寫作 @10,
如:// 單個字元
nsnumber *theletterz = @'z'; // 相當於 [nsnumber numberwithchar:'z']
// 整形
nsnumber *fortytwo = @42;
// 相當於 [nsnumber numberwithint:42]
nsnumber *ftunsigned = @42u; // 相當於 [nsnumber numberwithunsignedint:42u]
nsnumber *ftlong = @42l;
// 相當於 [nsnumber numberwithlong:42l]
nsnumber *ftlonglong = @42ll; // 相當於 [nsnumber numberwithlonglong:42ll]
// 浮點
nsnumber *pifloat = @3.141592f;// 相當於 [nsnumber numberwithfloat:3.141592f]
nsnumber *pidouble = @3.141592;// 相當於 [nsnumber numberwithdouble:3.141592]
// 是 / 否
nsnumber *yesnumber = @yes;
// 相當於 [nsnumber numberwithbool:yes]
nsnumber *nonumber = @no;
// 相當於 [nsnumber numberwithbool:no]
2. 新的 nsarray, nsdictionary 輸入方法
以前想要建立乙個新的 nsdictionary, 你必須不厭其煩地輸入:
nsdictionary *options = [nsdictionary dictionarywithobjectsandkeys: [nsnumber numberwithbool:yes], @"backup",[nsnumber numberwithint:7],@"daystokeepbackup",@"foo",@"flags", nil];
現在只用輸入:
nsdictionary *options = @;就可以達到同樣的效果。
nsarray 的輸入方法也變得更簡單:之前的
nsarray *items = [nsarray arraywithobjects:@"item1",[nsnumber numberwithbool:yes],[nsnumber numberwithint:12], nil];
現在只用輸入:
nsarray *items = @[ @"item1", @yes, @12 ];
3. 巢狀表示式 (boxed expressions)
最新版本的 objective-c 還提供了一種新的書寫方式:
@( expression )
bool 和 int 的結果有時候需要被計算才能得到。這時候你便可以將表示式放入一對括號中。比如:
nsnumber *total = @(0.2f - 1.9f); //[nsnumber numberwithfloat:0.2f - 1.9f]
nsnumber *piot = @(m_pi / 2);
//[nsnumber numberwithdouble:(m_pi / 2)]
4. 建立新 property 不用再合成
公升級到 xcode 4.4 後,在標頭檔案中建立的 @property 均無需再進行 @synthesize。xcode 將自動合成。
@synthesize object = _object;
LLVM 4中將加入新的LLVM鏈結器LLD
lld將被新增到llvm 4 rc1中,並預設啟用。lld自稱在效能上大大優於gcc ld。雖然該新鏈結器早可用於構建在用的freebsd amd64基系統 base system 但是這次將其新增到llvm中依然是實驗性的,在出現問題時會回退到rc2。在最新發布的freebsd專案季度狀態報告中,...
LLVM 4中將加入新的LLVM鏈結器LLD
lld將被新增到llvm 4 rc1中,並預設啟用。lld自稱在效能上大大優於gcc ld。雖然該新鏈結器早可用於構建在用的freebsd amd64基系統 base system 但是這次將其新增到llvm中依然是實驗性的,在出現問題時會回退到rc2。在最新發布的freebsd專案季度狀態報告中,...
LLVM 4中將加入新的LLVM鏈結器LLD
lld將被新增到llvm 4 rc1中,並預設啟用。lld自稱在效能上大大優於gcc ld。雖然該新鏈結器早可用於構建在用的freebsd amd64基系統 base system 但是這次將其新增到llvm中依然是實驗性的,在出現問題時會回退到rc2。在最新發布的freebsd專案季度狀態報告中,...