准备好迎接 3.0 API 变化

作者:Erica Sadun,原文链接,原文日期:2016-04-08
译者:zltunes;校对:numbbbbb;定稿:numbbbbb

据 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()

我简单总结了几条简化规则。记住,如果以下规则(进行简化)产生了一个不合法的结果(空的selectorSwift关键字等),那就不必遵循该规则。

简化 #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(...)

本文由 SwiftGG 翻译组翻译,已经获得作者翻译授权,最新文章请访问 http://swift.gg

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,194评论 4 61
  • 储老师向我们宣布了一个好消息,我们三年级快要举行“10岁成长仪式”了,大家还要上台表演呢。 听了这个消...
    奕涵之蜜儿阅读 1,456评论 0 0
  • 太武殿位于曹魏文昌殿旧址,是石虎进行百官朝会的场所。殿前有御沟,九条铜龙引水注入沟中。石家王朝崇佛,四月初八浴佛节...
    沈宛璃阅读 3,733评论 0 3
  • 第一章 下一章 我始终无法面对小至。那天小至依旧在门口等着雯。 我对小至说,雯我送她回去就行了。 ...
    奎鹤阅读 2,695评论 0 0
  • 昨天介绍了ArrayAdapter的使用,今天介绍一下更加实用的一点,对它进行重写,满足自己的个性化设计需要. A...
    danielss阅读 4,160评论 0 0