作者:Erica Sadun,原文鏈接,原文日期:2016-04-08
譯者:zltunes;校對:numbbbbb;定稿:numbbbbb
據(jù) Chris Lattner 所說,即將發(fā)布的 Swift 3 將在我們熟悉的 Cocoa 和 CocoaTouch 上做出重大改變。
在 Swift 3 中,
.blackColor()變成了.black()。
這一變化包含在將 Objective-C API 轉(zhuǎn)化成 Swift 的提案 SE-0005 中。由于屬性名結(jié)尾的單詞和屬性類型已經(jīng)包含了足夠的信息,因此可以刪掉 Color:
class func darkGrayColor() -> UIColor
// 因此
foregroundColor = .darkGrayColor()
// 變成了
foregroundColor = .darkGray()
我簡單總結(jié)了幾條簡化規(guī)則。記住,如果以下規(guī)則(進(jìn)行簡化)產(chǎn)生了一個不合法的結(jié)果(空的selector、Swift關(guān)鍵字等),那就不必遵循該規(guī)則。
簡化 #1:去除相同類型成員前邊的類型名稱:
let c = myColor.colorWithAlphaComponent(0.5)
// 變?yōu)?let c = myColor.withAlphaComponent(0.5)
簡化 #2:如果類型名后是 by + <del>現(xiàn)在分詞</del> 動名詞 形式,則將 "by" 一同去掉。
let img = myImage.imageByApplyingOrientation(o)
// 變?yōu)?let img = myImage.applyingOrientation(o)
簡化 #3:當(dāng)方法選擇器中含有類型名并滿足以下情況時,去掉類型名稱:
| 尾部位于: | 需精簡部分: |
|---|---|
| 引入?yún)?shù)的選擇器 | 參數(shù)類型名 |
| 屬性名稱 | 屬性類型名 |
| 無參方法名 | 返回類型名 |
documentForURL(_ url: NSURL)
var parentContext: NSManagedObjectContext?
class func darkGrayColor() -> UIColor
// 變?yōu)?documentFor(_ url: NSURL)
var parent: NSManagedObjectContext?
class func darkGray() -> UIColor
簡化 #4:去掉方法名中動詞后的類型名:
myVC.dismissViewControllerAnimated(...)
// 變?yōu)?myVC.dismissAnimated(...)
本文由 SwiftGG 翻譯組翻譯,已經(jīng)獲得作者翻譯授權(quán),最新文章請?jiān)L問 http://swift.gg。