如何使Xcode自动符合协议

时间:2016-01-02 09:05:28

标签: ios xcode swift interface code-generation

当我使用原型表视图时,我总是必须遵守协议TableViewDataSource。我总是忘记我需要实现哪些方法,所以我每次都要查看协议的来源。这非常耗时。

我认为Xcode必须具有自动为您实现所需方法的功能,对吧?就像IntelliJ IDEA,Eclipse和Visual Studio一样。

我想知道在哪里可以找到此功能。如果还没有,是否有针对此的解决方法?至少每次我遵守协议时,我都不必打开协议的源代码。

如果您不明白我的意思,请参阅以下代码:

我有一个协议

protocol Hello {
    func doStuff ()
}

当我遵守它时,

class MyClass: Hello {

}

我经常不记得我需要实现的方法的名称。如果Xcode具有将上述代码转换为以下代码的功能:

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

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

5 个答案:

答案 0 :(得分:9)

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

尝试使用protocol作为前缀定义方法,例如此处hello,然后您不必记住方法只是开始输入协议名称,XCODE将提示您使用所有可用的方法,请参阅此处:

enter image description here

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

答案 1 :(得分:8)

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

  1. 从顶部Xcode菜单(左上角)选择首选项。
  2. 选择密钥绑定。
  3. 搜索协议。你会找到名为public function withValidator($validator) { if ($validator->fails()) { Session::flash('error', 'Flash error!'); } else { } }
  4. 的Command
  5. 按键列,然后添加快捷方式。 Refactor -> Add Missing Protocol Requirements
  6. 现在您可以点击班级名称(或其分机号码)添加缺少的协议要求,然后按快捷键

    enter image description here

答案 2 :(得分:5)

Xcode 9,负责实施Swift数据源的强制方法。代表。

UICollectionViewDataSource

为例,查看这些快照

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

enter image description here

点击'修复'按钮,它添加了所有必需的方法:

enter image description here

答案 3 :(得分:1)

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

只需在类名称上单击“右键”:“重构”->“添加缺少的协议要求” enter image description here

答案 4 :(得分:-3)

Xcode不会为你做这件事。

如果您查看协议的文档,它会清楚地标明您必须实现哪些功能:

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