ios 6 采用了新的编译器LLVM 4.0, 其中带来了一些objc语法方便的小改变。 ios
在生成string 时, 咱们在objc 常使用NSString *s = @"string"; 使得建立string十分方便。在ios 6咱们能够使用相似的语法来声明NSNumber, NSArray, NSDictionary,从而使代码更简洁。 spa
NSNumber code
以前声明NSNuumber: get
NSNumber *n = [NSNumber numberWithInt:3]; NSNumber *yesValue = [NSNumber numberWithBOOL:YES];
LLVM 4.0 写法: 编译器
NSNumber *n = @3; NSNumber *yesValue = @YES ; NSNumber *pi = @3.14F //默认为double,加F后为float NSNumber *r = @3U //默认为有符号整型,加U后为无符号整型
NSArray和NSDictionary string
建立NSArray: it
NSString *str1 = @"1"; NSString *str2 = @"2"; NSString *str3 = @"3"; NSArray *myArray1 = [NSArray arrayWithObjects:str1,str2,str3,nil];
LLVM 4.0 io
NSArray *myArray2 = @[str1,str2,str3]; NSDictionary *d = @[@"key1":@"value1",@"key2":@"value2",@"key3":@"value3"];
获取NSArray和NSDictionary中的数据 编译
以前的方式是objectAtIndexOf 和 objectForKey, class
LLVM 4.0:
NSArray *arrayOfIntegers = @[@1 ,@2,@3]; int i = arrayOfIntegers[1]; NSDictionary *d = @[@"key1":@"value1",@"key2":@"value2",@"key3":@"value3"]; int e = d[@"key1"];
在ios 5 时,定义property本身要手动@synthesize p = _p; LLVM 4.0 则不须要写 = _p。编译器默认生成_p做为实例变量。可是若是你本身实现了setter和getter,就须要手动加上synthesize