在Xcode中自动实现Swift协议方法

时间:2014-12-06 12:16:19

标签: ios xcode swift autocomplete protocols

我刚开始使用swift语言并且来自java它到目前为止看起来很棒。 但我真的错过了一些东西:

Eclipse有这个很棒的功能,当我添加“implements XYZ”时,它为我提供了一个自动实现必要的功能存根的功能。这是一个巨大的节省时间。

Xcode似乎没有这个功能,或者我错过了什么?

我找到了accessorize插件,但这似乎只适用于Objective C ..

有解决方案吗?

PS。我正在使用Xcode 6.1.1

3 个答案:

答案 0 :(得分:22)

注意:对于版本9之前的Xcode,这个答案是正确的;在第9版中,Apple增加了自动修复丢失的协议方法的能力;见Guy Daher's answer

我刚创建了一个iOS项目,并进入了我的UIViewController.swift文件。在那里我声明它实现了UITableViewDelegate:

class ViewController: UIViewController, UITableViewDelegate {

现在,当我进入课堂的主体,并开始输入" tab ..."时,我看到了相应的自动填充功能:

Xcode autocompletions

点击输入然后插入函数存根,光标已准备好进行编码。

这就是Xcode自动完成协议(或继承的类方法)的方式。如果你想一次完成所有这些,我不会认为这是可能的,可悲的是。但是你总是可以 Cmd -click或 Option - Cmd -click(它使用辅助编辑器窗口)对协议名称跳转到它的定义,基本上是您可以复制并粘贴到代码中的所有方法的列表。你需要从那里整理一下,但不多。

答案 1 :(得分:16)

Xcode 9

Xcode 9现在支持通过“修复”来符合协议方法。它会自动为您填写缺少的方法。这是在2017年WWDC上宣布的。

enter image description here

更新:不幸的是,这对您定义的协议似乎不起作用。

答案 2 :(得分:3)

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

UICollectionViewDataSource

为例,查看这些快照

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

enter image description here

单击“修复”按钮,它添加了所有必需的方法:

enter image description here

备用选项
您可以使用键盘快捷键: Ctrl + Option + Command + F 来修复所有键问题一下子。

enter image description here