据 Chris Lattner 所说,即将发布的 Swift 3 将在我们熟悉的 Cocoa 和 CocoaTouch 上做出重大改变。
在 Swift 3 中,
.blackColor()
变成了.black()
。
class func darkGrayColor() -> UIColor
// 因此
foregroundColor = .darkGrayColor()
// 变成了
foregroundColor = .darkGray()
我简单总结了几条简化规则。记住,如果以下规则(进行简化)产生了一个不合法的结果(空的selector
、Swift
关键字等),那就不必遵循该规则。
简化 #1:去除相同类型成员前边的类型名称:
let c = myColor.colorWithAlphaComponent(0.5)
// 变为
let c = myColor.withAlphaComponent(0.5)
简化 #2:如果类型名后是 by + <del>现在分词</del> 动名词 形式,则将 "by" 一同去掉。
let img = myImage.imageByApplyingOrientation(o)
// 变为
let img = myImage.applyingOrientation(o)
简化 #3:当方法选择器中含有类型名并满足以下情况时,去掉类型名称:
尾部位于: | 需精简部分: |
---|---|
引入参数的选择器 | 参数类型名 |
属性名称 | 属性类型名 |
无参方法名 | 返回类型名 |
documentForURL(_ url: NSURL)
var parentContext: NSManagedObjectContext?
class func darkGrayColor() -> UIColor
// 变为
documentFor(_ url: NSURL)
var parent: NSManagedObjectContext?
class func darkGray() -> UIColor
简化 #4:去掉方法名中动词后的类型名:
myVC.dismissViewControllerAnimated(...)
// 变为
myVC.dismissAnimated(...)