在 Xcode 6.3 中,我们曾为 Objective-C 添加了新的 空值标记 语言特性。这个特点给了 Objective-C 语言一个与 Swift 相同的表达空与非空种类的 API 接口。
Xcode 7 通过给 Objective-C 引入轻量泛型模块让 Objective-C 与 Swift 沟通更加自然。泛型允许两个语言安全的沟通和分享保存了特定种类元素的合集。 这些特性对任何写 同时包含 Swift 和 Objective-C 代码的 APP 的人来说都很有用。
但是这里还有一些 Objective-C 开发者每天都在使用的更大的合集代码:组成苹果 SDK 的那些框架。为了提高 Swift 和 Objective-C 的操作体验,我们倾全公司的努力来在我们的 SDK 头提供这个信息。
在 Xcode 7你将会发现几乎所有的常见框架现在都在它们的 API 和合集类型的元素上支持了可空属性。这使得我们的 Swift 接口从这样:
class UIView : UIResponder {
init!(frame: CGRect)
var superview: UIView! { get }
var subviews: [AnyObject]! { get }
var window: UIWindow! { get }
// ...
func isDescendantOfView(view: UIView!) -> Bool
func viewWithTag(tag: Int) -> UIView!
// ...
var constraints: [AnyObject]! { get }
// ...
}
变成这样:
class UIView : UIResponder {