阅读694 返回首页    go 阿里云 go 技术社区[云栖]


IOS基础 第二课

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;
}


最后更新:2017-04-03 12:55:57

  上一篇:go Java中Comparable与Comparator的区别
  下一篇:go freopen重定向stdin与stdout后如何恢复正常