WWDC 2013 - Objective-C 新特性

  2013-06-18 00:00:00 CST

  Jingwen Peng

  Objective-C WWDC

WWDC-2013

WWDC (Apple Worldwide Developers Conference),苹果开发者大会,苹果开发者怎么能少得了 Objective-C,正是它支撑着整个苹果开发生态圈,同样这门语言也代表着苹果的精神和未来方向。这是我最最喜爱的语言,优雅、高端、大气、上档次。对于开发者来说,选择什么平台就意味着去抱谁的大腿,苹果在这点做的就很是出色,苹果凭借着独有一门语言的优势,不断的使 Objective-C 变的强大易用,一步步地向着现代进化。每年的 WWDC,苹果都会带来在 Objective-C 上的新突破,看看今年的苹果带来的新玩意儿。

舆论口水喷苹果从设计的引领者倒退到了追随者,但是在编程语言上的现代化理解,苹果一直独领风骚。


Objective-C 进化的理念

开发效率:简化,易用,强大的工具 软件质量:更容易揪出 Bug,预测、实用 这次的革新:Modules、更高效、ARC 提升


Modules

之前写代码时,如果加入一些框架,比如 iAd、GameCenter 等,不能简单的 import 进来

1
#import <iAd/iAd.h>

如果这样引入,直接 Build failed。得在工程设置里面,像这样引入框架。

Import-Framework

这样就显得繁琐,很不易于使用 进化过后的 Objective-C 支持下面的语句,可以直接导入 iAd 框架。

1
2
3
@import iAd; //全部导入
@import iAd.ADBannerView; //选择性导入
#import <iAd/ADBannerView.h> //支持这种语句,兼容老的代码

这样一来再也不需要去手动添加框架,同时由于 Modules 改变了引入的模式,使用新的机制能够一定程度提升性能。

Module-Build

Module-Index

使用新的 Xcode,然后开启 Modules,一切就 OK 了,不用对代码做任何修改! 小结一下 Modules

  • 简化框架的使用,加快导入和链接
  • 提升 IDE 性能
  • 不用对代码做任何修改

更高效

更现代的 Objective-C 语法 例如,下面是老的代码写法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
-(NSDictionary *)example {
    return [NSDictionary dictionaryWithObjectsAndKeys:
        @"Willie", @"PreferredName",
        @"The Lion", @"NickName",
        @"Smith", @"LastName",
        @"William", @"FirstName",
        [NSArray arrayWithObjects: @"Henry", @"Joseph",
            @"Bonaparte",@"Bertholoff", nil], @"MiddleNames",
        [NSNumber numberWithInt: 79], @"Age",
        [NSNumber numberWithInt: 1893], @"BirthYear",
        [NSNumber numberWithInt: 1973], @"DeathYear",
        [NSNumber numberWithBool: YES], @"Male",nil
    ];
}

这个是新的支持语法风格

1
2
3
4
5
6
7
8
9
10
11
12
13
-(NSDictionary *)example {
    return @{
        @"PreferredName": @"Willie",
        @"NickName": @"The Lion",
        @"LastName": @"Smith",
        @"FirstName": @"William",
        @"MiddleNames": @[ @"Henry", @"Joseph", @"Bonaparte", @"Bertholoff" ],
        @"Age": @79,
        @"BirthYear": @1893,
        @"DeathYear": @1973,
        @"Male": @YES
    };
}

这样以来,减少了很多重复来重复去的输入,极大提升了代码书写效率,也能让代码变的更加易于阅读。现代的语法风格就举一例,更多的用法自行查阅文档。 Objective-C 的语法一直在最求更易阅读,读起来就像英语一样,一目了然,优雅大气。

同时 Xcode 这个强大的 IDE,一直在提升。这次的进化包括:更强的纠错,更安全,枚举类型直接显示类型,甚至还有一个新的关键字 (instancetype,使用这个加入了对返回值的纠错)。


Garbage Collection (垃圾回收) 和 ARC (Automatic Reference Counting 自动引用计数)

垃圾回收机制已经不再使用,全面使用 ARC 机制。

ARC 的进化

  • Xcode 5.0 使用 ARC, 之前使用的是垃圾回收,提升 Xcode 性能
  • 继续优化
  • 弱指针引用效率在 iOS 7.0 和 OS X 10.9 上得到两倍提升
  • 内存管理更高效
  • ARC 转移器,轻松为老代码使用 ARC。
  • 新的内存管理警告,解决一些使用 ARC 而遇到的问题,曾经为此纠结过 (T_T)

总体来说 Objective-C 正是有了 Apple 的对之的不断提升和 IDE 的不断进化,表现出独特的蓬勃活力,变的更加优雅美丽,不断有新的血液注入,虽然一定程度增加了学习成本,但是换来的是高效和便捷,何乐而不为呢。

如果您有疑问或建议,请在下方评论区域留言

遵循 BY-NC-ND 协议

评论功能加载中...