Swift1.2与Xcode6.3 beta
程序员文章站
2022-04-14 20:57:01
...
Xcode6.3和Swift1.2都已经发布。这次发布增强了Swift编译器也给Swift增加了一些新的特性。详细内容可以看这里。这里主要关注比较重要的内容。 编译器的改进 Swift1.2的编译器更加的稳定,各方面性能都有所提升。这些改进让使用Swift开发体验更好。某些可见的
Xcode6.3和Swift1.2都已经发布。这次发布增强了Swift编译器也给Swift增加了一些新的特性。详细内容可以看这里。这里主要关注比较重要的内容。
编译器的改进
Swift1.2的编译器更加的稳定,各方面性能都有所提升。这些改进让使用Swift开发体验更好。某些可见的更新包括:
- 增量编译-没有修改的文件默认情况下不会再编译。这会大幅提升编译时间。大范围的代码调整还是会引发多文件的重新编译。
- 更快速的可执行文件-debug模式下生成的二进制文件将显著提升运行速度。新的优化也会提升release模式下生成的二进制文件的性能。
- 更好的编译诊断-更好的错误和警告信息,更好的“fix-it”提示。这些都会帮助你写出更好的Swift1.2代码。
- 更加稳定-常见的编译器崩溃已经修正。你也不会经常看到SourceKit警告了。
新的语言特性
Swift1.2有更好的安全和可预见行为。Swift和Objective-C交互也改进。主要改进如下:
- as!类型转换符-类型转换在运行时是可能失败的。现在用as!操作符,让读代码的或者代码的维护者更加清楚的知道潜在的运行时转换失败。
Objective-C增加了可空标记-新的Objective-C标记允许你在头文件中标记指针或者block是否可空。当你混合使用OC和Swift的时候,你可以写出和Swift融合更好的OC代码。如:
-(void)registerNib:(nonnull UINib *)nib forCellReuseIdentifier:(nonnull NSString *)identifier; -(nullable UITableViewCell *)cellForRowAtIndexPath:(nonnull NSIndexPath)indexPath; @property (nonatomic, readwrite, retain, nullable) UIView *backgroundView;
在Swift中会变成:
func registerNib(nib: UINib, forCellReuseIdentifier identifier: String) func cellForRowAtIndexPath(indexPath: NSIndexPath) -> UITableViewCell? var backgroundView: UIView?
以前一般会作为implicitly-unwrapped optionals 隐式解析可选(如,UINib!) 方式引入Swift代码中。现在有了可空标记,nonnull标记的将不再使用感叹号操作符。nullable标记的会作为optional类型,如上面的UITableViewCell返回值引入Swift后成为UITableViewCell?。
- Swift枚举可以使用@objc属性暴露给Objective-C-比如下面的代码:
@objc enum Bear: Int { case Black, Grizzly, Polar }
导入OC后为:
typedef NS_ENUM(NSInteger, Bear) {
BearBlack, BearGrizzly, BearPolar
};
- let常量更加强大、一致:let常量不再要求立即初始化。新规则是一个let常量必须在使用前初始化,而且只可以被初始化。不能重新复制或者改变。所以let表达式可以写成这样:
let x: SomeThing if condition { x = foo() } else { x = bar() } use(x)
- 更加强大的if let可选解析-if let一次可以解析多个optional。同时可以包含bool条件。这样可以有效的避免无效的嵌套。如:
if let a = foo(), b = bar() where a b, let c
上一篇: mac系统可以学python吗
推荐阅读
-
Internet Explorer 8 beta 中文版与IE7共存的解决方法
-
iPadOS14beta6新改进 支持在唤醒Siri同时与应用互动
-
苹果推送watchOS6.2.5开发者预览版Beta4 侧重于错误修复与内部改进
-
Internet Explorer 8 beta 中文版与IE7共存的解决方法
-
光之翼Java通用代码生成器1.0.0Beta版已公布,经过更新与测试,便携易用,功能强大 光之翼Java通用代码生成器Beta版动词算子代码生成器
-
Apache1.3.x+PHP4 Beta3在Windows 9x/NT下的安装与配置_PHP教程
-
Swift1.2与Xcode6.3 beta
-
iPadOS14beta6新改进 支持在唤醒Siri同时与应用互动
-
Internet Explorer 8 beta 中文版与IE7共存的解决方法_经验交流
-
Swift1.2与Xcode6.3 beta