如何让Xcode自动符合一个协议

How to make Xcode automatically conform to a protocol

当我使用原型 table 视图时,我总是必须遵守协议 TableViewDataSource。总是忘记自己需要实现什么方法,所以每次都要看协议源码。这真的很费时间。

我想Xcode一定有一个功能可以自动为你实现需要的方法吧?就像 IntelliJ IDEA、Eclipse 和 Visual Studio.

我想知道在哪里可以找到这个功能。如果没有,是否有解决方法?至少我不用每次遵守协议的时候都去打开协议的源码

如果你不明白我的意思,这里有一些代码:

我有协议

protocol Hello {
    func doStuff ()
}

当我符合它时,

class MyClass: Hello {

}

我经常不记得我需要实现的方法的名称。如果Xcode有一个功能可以把上面的代码变成这样:

class MyClass: Hello {
    func doStuff () {
        code
    }
}

现在你明白我的意思了吧?我只想问一下哪里可以找到这样的功能

好吧,如果我理解你的问题,那么这里有一个解决方法:

尝试像这里这样用协议作为前缀定义方法 hello 然后你就不必记住这些方法,只需开始输入协议名称,XCODE 会提示你所有可用的方法,见这里:

如果你想要自动完成协议试试 Snippets

Xcode不会为你做。

如果你查看协议的文档,它清楚地标记了你必须实现的功能:

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableViewDataSource_Protocol/

Xcode 9,负责 Swift 数据源和委托的强制方法的实现。

看看这些快照,例如 UICollectionViewDataSource:

指示实现协议方法的警告:

点击'Fix'按钮,已添加所有必填方法:

Xcode 9 :您可以通过向键绑定集添加新的快捷方式来添加缺少的协议要求

  1. 从顶部 Xcode 菜单(左上角)中选择首选项。
  2. 选择键绑定。
  3. 搜索协议。你会发现名为 Refactor -> Add Missing Protocol Requirements
  4. 的命令
  5. 按“键”列,然后添加您的快捷方式。 ex: cmd + shift + M

现在您可以通过单击 class 姓名(或其扩展名)添加缺少的协议要求,然后按您的快捷方式

与 Amjad 的 post 非常相似,Xcode 9/10 带来了直接在代码编辑器中添加缺少的协议要求的功能。

只是 "right click" 在 class 名称上:"Refactor" --> "Add Missing Protocol Requirements"