objective c Xcode中是否有一个关键的组合来实现协议?



objective-c refactoring (6)

我没有在Xcode中看到过这个功能。 但是似乎有人可以在脚本>代码中编写一个名为“在剪贴板上放置执行者定义”的新用户脚本。

你没有觉得这有用。

在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有什么功能可用吗? 我希望能够以这种方式自动实现协议。 也许用可选的方法生成,但注释掉。


Answer #1

目前在Xcode中没有这样的重构。

如果您愿意,请提交改进请求


Answer #2

麦克罗姆对此进行了讨论。 有一个苹果脚本的链接。 我实际上没有尝试过这些。


Answer #3

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,就像我知道的那样:)



Answer #5

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

@interface FooAppDelegate : NSObject <NSApplicationDelegate, 
                                      NSTableViewDelegate> {

快速打开定义协议的.h文件。 从那里,复制和粘贴你感兴趣的方法。这些头文件往往是很好的评论,这有助于确定哪些方法,你可以安全地忽略。





code-generation