OS中的新特性
int main(int argc, const char * argv[]) {
@autoreleasepool {
// 从Xcode4.5开始,提供了很多的新特性
// 1.NSNumber写法
// 第一种写法
NSNumber *charZ = [NSNumber numberWithChar:'Z'];
// 这种新写法是不是很方便?当然啦!
NSNumber *newCharZ = @'Z';
// 打印出 90 90
NSLog(@"%@ %@", charZ, newCharZ);
// 同理,其它NSNumber型的都可以这么写法
NSNumber *floatNumber = @3.14f;// flost类型
NSNumber *doubleNumber = @3.14; // double类型
NSNumber *longNumber = @24521L; // long类型
NSNumber *longlongNumber = @123124214LL;
// BOOL类型 需要大写
NSNumber *yesNumber = @YES;
NSNumber *noNumber = @NO;
// 2、NSArray写法
// 这是旧的写法
NSArray *array = [NSArray arrayWithObjects:@"1", @"2", nil];
// 这是新的写法,是不是很方便?
NSArray *newArray = @[@"1", @"2"];
// 3、NSDictionary写法
// 这是旧的写法
NSDictionary *dict = [[NSDictionary alloc] initWithObjectsAndKeys:
@"key1", @"value1",
@"key2", @"value2", nil];
// 这是新的写法, 是不是很简洁了!
NSDictionary *newDict = @{@"key1" : @"value1",
@"key2" : @"value2"};
// 4、内套表达式
// @()这是最新版本的OC语法
// 等价于NSNumber *totalNumber = [NSNumber numberWithFloat:0.25f - 1.09f];
NSNumber *totalNumber = @(0.25f - 1.09f);
// 等价于NSNumber *piNumber = [NSNumber numberWithFloat:M_PI / 2];
NSNumber *piNumber = @(M_PI / 2);
// 5、使用property不用再手动调用@synthesize合成gettter/setter方法
// 之前是需要这么写法的
//@synthesize object = _object;
// 现在较新的编译器会自动帮我们完成
}
return 0;
}