2013年4月19日 星期五

Xcode 4.5 新增的特性

但現在都 4.6 了..., 參考資料

我沒有全部寫出來, 以下是我常用的到, 其它請參考連結資料

@synthesize by default(属性自動绑定)
以前要自己寫@synthesize 現在不用, 而存取參數只要 self.xxx 即可
雖然說省略@synthesize, 但setter與getter還是會自動生成

@literals(簡寫) //這是我覺得很棒的地方, 一些很瞎的設定都沒了
NSNumber
● [NSNumber numberWithChar:‘X’] 簡寫為 @‘X’;
● [NSNumber numberWithInt:12345] 簡寫為 @12345
● [NSNumber numberWithUnsignedLong:12345ul] 簡寫為 @12345ul
● [NSNumber numberWithLongLong:12345ll] 簡寫為 @12345ll
● [NSNumber numberWithFloat:123.45f] 簡寫為 @123.45f
● [NSNumber numberWithDouble:123.45] 簡寫為 @123.45
● [NSNumber numberWithBool:YES] 簡寫為 @YES

NSDictionary
● [NSDictionary dictionary] 簡寫為 @{}
● [NSDictionary dictionaryWithObject:o1forKey:k1] 簡寫為 @{ k1:o1 }
● [NSDictionarydictionaryWithObjectsAndKeys:o1,k1, o2,k2, o3,k3, nil] 簡寫為 @{ k1:o1, k2:o2, k3:o3 }

NSArray
部分NSArray方法得到了簡化:
● [NSArray array] 簡寫為 @[]
● [NSArray arrayWithObject:a] 簡寫為 @[ a ]
● [NSArray arrayWithObjects:a, b, c, nil] 簡寫為 @[ a, b, c ]

NSMutableArray版本和靜態版本
NSArray內容是不可變的,想得到可變的NSMutableArray的話,可對其發送 -mutableCopy。比如
NSMutableArray *mutablePlanets = [ @[@"Mercury", @"Venus", @"Earth"] mutableCopy];

索引
Array
Song *oldSong = [_songs objectAtIndex:idx];
[_songs replaceObjectAtIndex:idx withObject:newSong];
可以簡寫為
Song *oldSong = _songs[idx];
_songs[idx] = newSong;


Dictionary
id oldObject = [_storage objectForKey:key];
[_storage setObject:newobject forKey:key];
可以簡寫為
id oldObject = _storage[key];
_storage[key] = newObject;

沒有留言:

張貼留言