北京时间 9 月 3 日消息,在 Mac OS X Yosemite DP6 以及 Xcode 6 Beta 6 发布两周后,颇为忙碌的苹果在其开发者网站上同时公布了 Yosemite DP7(14A343f)、Xcode 6 Beta 7(6A280n),以及 OS X Server 4.0 DP (14S274)、Apple Configurator 1.7 Beta 5 更新,当然,对开发者来说,最重要的还是 Xcode 6 Beta 7 又发生了哪些变化。
从 Xcode 6 Beta 7 的 Release Notes 来看,Beta 7 对于 Swift 语言在语法层面上改动并不大,但内部库却存在着较多的修改和适配,主要为:大量内部类或函数遵循 Optional 类型和协议,移除了大部分函数返回类型隐式解封可选类型的使用。而其中,更多的 API 调整了 Optional Conformance,包括 Foundation、UIKit、CoreData、SceneKit、SpriteKit、Metal 等,目测又会引起开发者们一阵的头疼脑热。
Beta 6 修改了泛型接口,将T!强制解封改为T?或T,而在 Beta 7 中,则实行了统一更换,明确返回值为空和不为空的情况,让语法变得更加严谨。如果开发者遇到返回值被错误地认为是非空型的方法或属性的问题,则可以通过立即用 Optional 包装结果来解决:
var fooOpt: NSFoo? = object.reallyMightReturnNil () if let foo = fooOpt { … }
在 Xcode 6 Beta 7 中,字符类型不能再用“+”运算符来链接,可以使用 String (c1) +String (c2)。除此之外,苹果还是着重修复 Swift 语言所存在的诸多 Bug:对 Sort ()函数进行重写,以解决栈溢出的 Bug;使用 Unmanaged 类型导致编译器崩溃问题修复;泛型类属性中出现本泛型类类型时,编译器挂起的情况解决;Playground 显示类或结构体示例信息时不再省略 name 字段等。
尽管苹果已经在劳心劳力地填补漏洞,但据不少开发者反映,目前,Swift 语言依然还存在许多 Bug,而新品发布会在即,苹果是否会再为开发者推出一款 Beta 8?还是个未知数。不过,从一系列更新不断,但 iOS 8 新 Beta 却未见踪影可以确定,iOS 8 GM 版即将到来。
现在,您还可以进入 Xcode、Swift 的 mobilehub 主页进行资源分享和讨论。开发者可直接登陆 Apple Developer 下载 Xcode 6 Beta 7,想要了解 Xcode 6 更新的详细信息,则可以查看 Xcode 6 Beta 7 Release Notes 。