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

use*_*838 36 xcode protocols autocomplete ios swift

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

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

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

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

有解决方案吗?

PS.我正在使用Xcode 6.1.1

Mat*_*son 22

注意:对于版本9之前的Xcode,这个答案是正确的; 在第9版中,Apple增加了自动修复丢失的协议方法的能力; 看到盖伊达赫的回答.

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

class ViewController: UIViewController, UITableViewDelegate {
Run Code Online (Sandbox Code Playgroud)

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

Xcode自动完成

点击Enter然后插入功能存根,光标放置准备编码.

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


Guy*_*her 16

Xcode 9

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

在此输入图像描述

更新:遗憾的是,这似乎不适用于您定义的协议.

  • 最后!那早就应该了! (3认同)
  • 确实.欢呼! (3认同)