LLVM4更新--简化对象定义
簡介: LLVM4.0 更新(在xcode4.4引入)中,添加了一些新的簡便代碼書寫的方法
添加文字的數(shù)字,數(shù)組,字典,以及表達(dá)式的語法
得益于 LLVM 編譯器 4.0 的更新,增加了許多新特性,其中包括更方便的代碼輸入。這一更新可大大提高寫代碼的效率。這要在定義時使用@符號,正如NSString定義操作一樣。
1. 所有的 NSNumber 表達(dá)
從 Xcode 4.4 起,所有的 [NSNumber numberWithInt: 10] 之類的表達(dá)現(xiàn)在都可以寫作 @10,
如:
// 單個字符
NSNumber *theLetterZ = @'Z'; ??// 相當(dāng)于 [NSNumber numberWithChar:'Z']
// 整形
NSNumber *fortyTwo = @42; ?????// 相當(dāng)于 [NSNumber numberWithInt:42]
NSNumber *ftUnsigned = @42U; ??// 相當(dāng)于 [NSNumber numberWithUnsignedInt:42U]
NSNumber *ftLong = @42L; ??????// 相當(dāng)于 [NSNumber numberWithLong:42L]
NSNumber *ftLongLong = @42LL; ?// 相當(dāng)于 [NSNumber numberWithLongLong:42LL]
// 浮點(diǎn)
NSNumber *piFloat = @3.141592F;// 相當(dāng)于 [NSNumber numberWithFloat:3.141592F]
NSNumber *piDouble = @3.141592;// 相當(dāng)于 [NSNumber numberWithDouble:3.141592]
// 是 / 否
NSNumber *yesNumber = @YES; ???// 相當(dāng)于 [NSNumber numberWithBool:YES]
NSNumber *noNumber = @NO; ?????// 相當(dāng)于 [NSNumber numberWithBool:NO]
?
2. 新的 NSArray, NSDictionary 輸入方法
以前想要創(chuàng)建一個新的 NSDictionary, 你必須不厭其煩地輸入:
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithBool:YES], @"backup",[NSNumber numberWithInt:7],@"daysToKeepBackup",@"foo",@"flags", nil];
現(xiàn)在只用輸入:
NSDictionary *options = @{@"backup": @YES,@"daysToKeepBackup": @7,@"flags": @"foo"};就可以達(dá)到同樣的效果。
NSArray 的輸入方法也變得更簡單:之前的
NSArray *items = [NSArray arrayWithObjects:@"item1",[NSNumber numberWithBool:YES],[NSNumber numberWithInt:12], nil];
現(xiàn)在只用輸入:
NSArray *items = @[ @"item1", @YES, @12 ];
?
3. 嵌套表達(dá)式 (Boxed Expressions)
最新版本的 Objective-C 還提供了一種新的書寫方式:
@( expression )
BOOL 和 int 的結(jié)果有時候需要被計算才能得到。這時候你便可以將表達(dá)式放入一對括號中。比如:
NSNumber *total = @(0.2f - 1.9f); //[NSNumber numberWithFloat:0.2f - 1.9f]
NSNumber *piOT = @(M_PI / 2); ????//[NSNumber numberWithDouble:(M_PI /?2)]
?
4. 創(chuàng)建新 property 不用再合成
升級到 Xcode 4.4 后,在頭文件中創(chuàng)建的 @property 均無需再進(jìn)行 @synthesize。Xcode 將自動合成。
@synthesize object = _object;
總結(jié)
以上是生活随笔為你收集整理的LLVM4更新--简化对象定义的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS7(+) 图像资源Images A
- 下一篇: 《流浪地球2》进入北美票房前十名 好的作