Xcode:可以自动创build存根协议接口所需的方法?

从Eclipse / Java背景来看,我最喜欢的function之一就是能够快速地将接口所需的所有方法存根出来。 在Eclipse中,我可以从源菜单中select“覆盖/实现”来为接口的任何方法生成存根方法。

我想在Objective-C中做同样的事情。 例如,如果我声明一个实现“NSCoding”协议的类,我想让Xcode自动生成实现此协议所需的方法。 这是令人沮丧的查找,然后复制/粘贴每个协议,我试图实现所需的方法的签名。

我一直在试图找出这是否可能,但还没有发现任何有希望的。 这在XCode中可能吗?

访问者将编写传递给它的ivars的编码和解码方法(NSCoding协议和NSDocument归档)。 它也会生成带有自定义前缀的string常量static或#define; copyWithZone:; 和其他的东西,如果你需要 – 所有从一个简单的快捷方式通过服务或从工具栏。 Accessorizer键盘归档

我相信Accessorizer会做你想做的。

不是最直接的答案,只是提示:

开箱XCode不能。

但是AppCode可以。

它可以自动完成这些事情(当然还有你的许可)。

如果某些协议的方法标记为@requiredAppCode将突出显示实现并build议实现此方法。

例

@optional方法也可以自动实现(快捷键: control + I )。

您可以在AppleScript,Perl,Python,Ruby或脚本菜单中的任何其他脚本语言中为脚本菜单项创build脚本。

您可以将插入点放在.m文件中,并让脚本查找相应的.h文件。 find支持的协议等等…

MacTech在2007年Xcode菜单脚本中运行了一篇文章

Xcode 3.2将自动完成已知的方法实现。 换句话说,如果方法是在某处(例如在协议中)声明的,那么当您开始在.m文件中input时,Xcode 3.2会为您自动完成方法签名。 这不是你所要求的,但它非常方便。

我也正在寻找一种方法来为我的头文件中的协议生成方法存根。 我检查了Accessorizer,它看起来是一个方便的工具,但除非我错过了一些东西,我没有find一种方法让它产生一个协议的方法存根(stub)。

埃里克,如果你发现另一个解决scheme,请发布你find的。 XCode还没有将其内置到IDE中,这一点令人惊讶。

由于接受的答案给定的链接不再工作(并被redirect到广告),下面是如何使用访问者创build协议方法存根的另一个很好的解释。

基于AllanCraig的“创build@property,variables声明@synthesize&dealloc”ruby脚本,我做了一个从接口实例生成实现存根: http : //pastebin.com/4T2LTBh6

如何使用?

  • 在您的XCode(Shell脚本)上设置脚本并为其分配快捷方式(例如,CMD + 5)。
  • 从您要在其中生成实施的界面文件中select行,然后按热键。
  • 您的.m将包含您select的方法。

我知道这是一个古老的问题,但如果你想总是看到最新的定义,只需右键点击有问题的类并跳转到定​​义。 这里隐藏了所有当前未被弃用的函数,所以你不依赖于第三方来保持最新。

在我的情况下风格帮助我很多,从某种意义上解决了我的问题。

假设你有下面的方法声明:

 +(DBManager*)getSharedInstance; 

从Implementation文件开始input+ ge,xcode将自动select方法

 +(DBManager*)getSharedInstance;