29

在 Visual Studio 中,如果我定义一个类来实现一个接口,例如

class MyObject : ISerializable {}

我可以右键单击 ISerializable,从上下文菜单中选择“实现接口”,然后在我的类定义中看到相应的方法。

class MyObject : ISerializable {
    #region ISerializable Members
    public void GetObjectData(SerializationInfo info, 
                StreamingContext context)
    {
        throw new NotImplementedException();
    }
    #endregion
}

Mac 上的 Xcode 中有类似的功能吗?我希望能够以这种方式自动实现协议。也许使用生成但注释掉的可选方法。

4

7 回答 7

22

XCode 目前不支持这种自动化。但是:使用协议引导代码的一种简单方法是单击类声明中的协议名称

@interface FooAppDelegate : NSObject <NSApplicationDelegate, 
                                      NSTableViewDelegate> {

快速打开定义协议的 .h 文件。从那里,复制并粘贴您感兴趣的方法。这些标题往往会得到很好的注释,这有助于确定您可以安全地忽略哪些方法。

于 2011-03-19T02:04:03.570 回答
6

我还没有在 Xcode 中看到该功能。但似乎有人可以编写一个新的用户脚本,名为“将实施器定义放在剪贴板上”,它位于脚本 > 代码中。

你没有发现这很有用。

于 2008-10-11T17:16:35.490 回答
5

Xcode 目前没有这样的重构。

如果您愿意,请提交增强请求

于 2008-10-12T02:57:34.600 回答
2

我知道这个线程有点老了,但我想知道同样的事情并找到了这个问题。

就我而言,我在接口 (.h) 中定义了一个属性,并且我想在实现 (.m) 中综合它。我还需要实现接口中定义的方法。是的,正如其他人所提到的,Xcode 有所帮助,但是现代 IDE 为我们经常做的事情提供了这些生产力增强。看来这仍然不是 Xcode 4.3.3 中的功能。但是,该功能在JetBrains 的 AppCode中可用。我只是涉足试用,但它似乎一次只能使用一个属性或方法,而不是像 Visual Studio 这样的整个界面。

于 2012-06-30T20:45:51.290 回答
1

Xcode 可以根据协议方法为您提供帮助,假设您有这样的协议:

@protocol PosterousWebsitesDelegate <NSObject>
- (void)PosterousWebsitesLoadSuccess:(PosterousWebsites*)websites;
@end

在 .m 文件的 @implementation 部分中,您可以开始编写方法的名称并按 ESC 键以自动完成方法/选择器的签名:

-(void)Poste (...press ESC...)

Xcode 将自动完成@protocol 方法的完整签名,按 TAB 键确认代码。

如果你真的致力于学习 OSX/iOS 开发,我建议你阅读“XCode 3 Unleashed”,这本书真的帮助我深入了解 Xcode,就像我对 VS 的了解一样 :)

于 2010-10-17T04:20:39.247 回答
1

检查这个插件

https://github.com/music4kid/FastStub-Xcode

它可以满足您的要求,甚至更多。

于 2016-06-07T15:43:03.583 回答
0

Macrumors也对此进行了讨论。有一些苹果脚本的链接。我还没有真正尝试过这些。

于 2010-01-27T03:50:02.597 回答