準備好迎接 Swift 3.0 API 變化
據 Chris Lattner 所說,即將發布的 Swift 3 將在我們熟悉的 Cocoa 和 CocoaTouch 上做出重大改變。
在 Swift 3 中,
.blackColor()
變成了.black()
。
這一變化包含在將 Objective-C API 轉化成 Swift 的提案 SE-0005 中。由于屬性名結尾的單詞和屬性類型已經包含了足夠的信息,因此可以刪掉 Color
:
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 + 現在分詞 動名詞 形式,則將 “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(...)
來自:http://swift.gg/2016/05/03/preparing-for-3-0-api-pruning/
本文由用戶 398183216 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!