参考所有Swift协议?

Bou*_*uke 8 swift ios8 swift-protocols

Swift有一个类接口的概念,叫做Protocols.但是我似乎无法找到Swift API中所有可用协议的完整参考.我在哪里可以找到所有协议的列表?

Jia*_*aro 12

好吧,我还没有看到任何文档,但这是我一直在使用的技巧(在XCode中):

import Swift
Run Code Online (Sandbox Code Playgroud)

...然后[CMD] - 点击"Swift",它会带你到Swift std lib的标题.

您可以在其中看到许多协议及其所需的内容,包括文档中的内容(esqew的评论中提到),这有助于理解如何使用标题(至少有一些内容有解释) )

编辑:

我记得我在其中一个WWDC视频中看到了一个"特殊协议"列表,并拍了一张截图:)

他们是(如幻灯片所示):

  • LogicValue - if logicValue {
  • Printable - "\(printable)"
  • Sequence - for x in sequence
  • IntegerLiteralConvertible - 65536
  • FloatLiteralConvertible - 1.0
  • StringLiteralConvertible - "abc"
  • ArrayLiteralConvertible - [ a, b, c ]
  • DictionaryLiteralConvertible - [ a: x, b: y ]

Literal Convertible意味着您可以使用文字la分配给它们:

class MyString: StringLiteralConvertible {
  …
}

var x: MyString = "asdf"
Run Code Online (Sandbox Code Playgroud)

有趣的是没有提及:EquatableComparable(在上面提到的文档中有所介绍)