ios 6 LLVM 4.0 obj-c構文のいくつかの変化


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を手動で追加する必要があります.