ios6 LLVM 4.0 obj-c 語法的一些變化
ios 6 采用了新的編譯器LLVM 4.0, 其中帶來了一些obj-c語法方便的小改變。
在生命string 時(shí), 我們在obj-c 常使用NSString *s = @"string"; 使得創(chuàng)建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 //默認(rèn)為double,加F后為float
- NSNumber *r = @3U //默認(rèn)為有符號整型,加U后為無符號整型
NSArray和NSDictionary寫法變化
之前創(chuàng)建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中的數(shù)據(jù)
之前的方式是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 時(shí),定義property自己要手動(dòng)@synthesize p = _p;
而LLVM 4.0 則不需要寫 = _p。編譯器默認(rèn)生成_p作為實(shí)例變量。