ios6 LLVM 4.0 obj-c 語法的一些變化

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

相關文章
相關標籤/搜索