Swift2.2更新内容(简介)

1.允许大多数关键字作为方法中参数名,let、var、inout除外。

before:

func touchesMatching(phase: NSTouchPhase,`in` view: NSView?) -> Set<NSTouch>

now:

func touchesMatching(phase: NSTouchPhase,in view: NSView?) -> Set<NSTouch>

2.用associatedtype代替typealias用于相关类型声明,typealias依然可以用于为现有类型替代名称。

before:

protocol Prot {
    typealias Container : SequenceType
}
extension Prot {
    typealias Element = Container.Generator.Element
}

now:

protocol Prot {
    associatedtype Container : SequenceType
}
extension Prot {
    typealias Element = Container.Generator.Element
}

3.为了使 AnySequence的delegate调用底层的序列, 它的初始化器会有格外的约束。

before:

public struct AnySequence<Element> : SequenceType {
  public init<
    S: SequenceType
    where
      S.Generator.Element == Element
  >(_ base: S) { ... }
}

now:

public struct AnySequence<Element> : SequenceType {
  public init<
    S: SequenceType
    where
      S.Generator.Element == Element,
      S.SubSequence : SequenceType,
      S.SubSequence.Generator.Element == Element,
      S.SubSequence.SubSequence == S.SubSequence
  >(_ base: S) { ... }
}

4.元组有了操作符。

let a:(String,Int) = ("123",123)
let b:(String,Int) = ("123",123)
a == b //true

5.为Swift的版本进行配置

#if swift(>=2.2)
print("Active!")
#else
    this! code! will! not! parse! or! produce! diagnostics!
#endif

6.改变了有参数的函数的命名方式。

举个例子:

extension UIView {
  func insertSubview(view: UIView, at index: Int)
  func insertSubview(view: UIView, aboveSubview siblingSubview: UIView)
  func insertSubview(view: UIView, belowSubview siblingSubview: UIView)
}
someView.insertSubview(view, at: 3)
someView.insertSubview(view, aboveSubview: otherView)
someView.insertSubview(view, belowSubview: otherView)

before:

let fn = someView.insertSubview // ambiguous: could be any of the three methods

now:

let fn = someView.insertSubview(_:at:)

7.引用了OC的方法选择器

before:

 button.addTarget(self, action: "test", forControlEvents: UIControlEvents.AllEvents)

now:

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

推荐阅读更多精彩内容

  • Swift 介绍 简介 Swift 语言由苹果公司在 2014 年推出,用来撰写 OS X 和 iOS 应用程序 ...
    大L君阅读 8,542评论 3 25
  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young阅读 9,435评论 1 10
  • 1、局部的看见 在《机遇编年史的71块碎片》中,迈克尔·哈内克选择将“暴力”作为他影像冰川的一角,以此痛击观众,从...
    不流不流阅读 2,600评论 2 4
  • 从毕业至今,我还是那个社交圈很单纯的马老师。没想到同学起的外号到如今成了事实,生活圈子还是单调如一,接触的人也是十...
    Dara_冯阅读 3,902评论 0 0
  • 如果曾经目光如炬,不管结局如何,但是那一刻,我相信你是认真的。 民谣歌手赵雷火了,他坚持唱着写着的歌也就这样火了。...
    心若素简阅读 2,675评论 0 1