我不想在问之前放弃,因为这是任何Java / .Net IDE中的基本功能。编译器告诉我:
Incomplete implementation of class...
Method definition for '-someMethod:' not found
但点击,右键单击,祈祷和Google搜索并没有让我自动创建一个方法存根。 Xcode可以为我创建方法存根并带我去那里吗?
如果没有,为什么会这样(除了“真正的程序员喜欢打字”)?
编辑:我认为 option-escape 基本上为我解决了这个问题,但事实并非如此。它似乎并不知道我的类实现的所有(任何?)接口。
答案 0 :(得分:4)
这可能是向Apple提交功能请求的选项。通常情况下,我会设计我的@interface文件,然后将@interface复制/粘贴到@implementation,保持键入绝对最小值。
然而,能够点击警告并让Xcode在@implementation的botto上创建方法会很高兴。
注意:在@implementation
之后保留分号是有效的@interface PCStackValue : NSObject <NSCoding, NSCopying>
{
}
- (id) initWithDisplayRadix:(int) newRadix;
@end
@implementation PCStackValue
- (id) initWithDisplayRadix:(int) newRadix;
{
… do something;
}
@end
答案 1 :(得分:2)
我不介意这种行为。首先,实现不一定存在,因为它可能是动态的。我还使用 #pragma mark - MyCategory 对我的代码进行分类,并希望在源文件中的特定位置实现。
但是,我同意 - 我不想输入存根本身。
你可以按照方法进行。
转到您的实现文件并开始键入 - 前缀并按ESC键,您应该看到与前缀匹配的有效完成。您必须首先键入 - 或+才能使用它,例如分别为方法和类方法。
有时你不知道你要实施什么!打开“问题导航器”,然后单击显示矩形。应该有一行说明 Method声明在这里。单击它以查看缺少实现的方法。
答案 2 :(得分:1)
您所寻找的东西不存在。我只是使用自动完成(它通常适用于我)或复制/粘贴。
是什么让你认为Xcode会有一个功能只是因为eclipse有它? Eclipse大约有10年的历史,而Xcode大约有23年的历史。复制的任何功能很可能都是另一个方向。
然而,这将是一个很棒的功能请求。也许在@implementation .. @end
内的空行上打开自动完成菜单可能会列出尚未实现的方法。
但由于NSObject
类别,我不确定它在实践中的效果如何。在自动完成菜单中可能确实存在数千的“尚未实现”的方法。但它至少可以显示一些最可能的。
似乎这个编译错误/警告也是新“修复它”功能的一个很好的候选者。
另外:学会更快地打字:p
答案 3 :(得分:0)
OP(我)所谈论的是Java,其中接口是隐含的。但是,Xcode中相同的情况是在任何接口中都没有定义NO方法的情况。
AppCode处理这种情况,Xcode没有(除非有人回答这个问题,但它已经存在了一段时间):
后来:人们已回答了这个问题,但Xcode仍然没有这样做。