在最新的 Xcode 4.4 中,增加了许多新特性。其中包括更方便的代码输入,这得益于 LLVM 编译器 4.0 的更新。这一更新可大大提高写代码的效率。
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 = @{ @"backup": @YES, @"daysToKeepBackup": @7, @"flags": @"foo" };
就可以达到同样的效果。
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;

本文介绍了Objective-C LLVMM4.0版本带来的新特性,包括简化了NSNumber表达、改进了NSArray和NSDictionary输入方法、嵌套表达式(BoxedExpressions)的使用以及创建新property不再需要合成。这些更新旨在提高代码输入效率。
103

被折叠的 条评论
为什么被折叠?



