ios6 LLVM 4.0 obj-c 语法的一些变化

∥☆過路亽.° 提交于 2019-12-10 15:20:33

ios 6 采用了新的编译器LLVM 4.0, 其中带来了一些objc语法方便的小改变。

在生成string 时, 我们在objc 常使用NSString *s = @"string"; 使得创建string十分方便。在ios 6我们可以使用类似的语法来声明NSNumber, NSArray, NSDictionary,从而使代码更简洁。

NSNumber

之前声明NSNuumber:

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

创建NSArray:

NSString *str1 = @"1";

NSString *str2 = @"2";

NSString *str3 = @"3";

NSArray *myArray1 = [NSArray arrayWithObjects:str1,str2,str3,nil];

LLVM 4.0

NSArray *myArray2 = @[str1,str2,str3];

NSDictionary *d = @[@"key1":@"value1",@"key2":@"value2",@"key3":@"value3"];

获取NSArray和NSDictionary中的数据

之前的方式是objectAtIndexOf 和 objectForKey,

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!