Objective c Xcode中的私有方法

Objective c Xcode中的私有方法,objective-c,xcode,Objective C,Xcode,我喜欢将纯粹的内部方法与类的公共API分开,因此我在.m文件中有很多私有类别,例如 @interface Foo (Foo_Private) -(void)clicked:(id)sender; @end 问题是,当我使用方法下拉列表(也称为Ctrl-2)时,私有方法声明都会首先显示,因此当我在下拉列表打开时开始键入“clicked”时,方法声明会被选中,而不是实现,因此我基本上不可能通过键盘导航 这真让人讨厌。这有什么办法吗?我看到有人建议您将私有方法声明保存在“Foo_private.

我喜欢将纯粹的内部方法与类的公共API分开,因此我在.m文件中有很多私有类别,例如

@interface Foo (Foo_Private)

-(void)clicked:(id)sender;

@end
问题是,当我使用方法下拉列表(也称为Ctrl-2)时,私有方法声明都会首先显示,因此当我在下拉列表打开时开始键入“clicked”时,方法声明会被选中,而不是实现,因此我基本上不可能通过键盘导航


这真让人讨厌。这有什么办法吗?我看到有人建议您将私有方法声明保存在“Foo_private.h”中,但我不希望为每个使用私有方法的类创建单独的头。

如果在打开函数下拉列表时按住修饰符键(特定修饰符取决于Xcode、IIRC的版本),它按字母顺序而不是按源代码顺序对函数进行排序。这将允许您键入跳转到正确的方法

另一方面,您可以使用类扩展而不是类别。它们看起来像一个类别,只是它们之间没有任何关联,如

@interface Foo ()

与类别相比,它的主要好处是您可以在此处声明(或重新声明,以更改readonly->readwrite)属性,这些属性在@implementation内部合成。

是用于iPhone应用程序还是Mac应用程序?请注意,您不能“单击”iPhone。你要知道:)他说的是XCode,而不是iPhone和Mac的开发。@Radek S,我说的是在XCode内部点击…@Bill我知道。我在您的示例代码中谈到了方法名称。您是我的英雄-在Xcode 3.2.x中,Ctrl-Option-2允许我直接跳到实现方法,类扩展提示也很有用。谢谢