Xcode代码完成中类扩展中方法的可见性

Xcode代码完成中类扩展中方法的可见性,xcode,code-completion,class-extensions,Xcode,Code Completion,Class Extensions,我看到了一个类似的问题。我的问题涉及Xcode(3.2)的一个特定行为 当我在类扩展中声明“private”方法时,这些方法在代码完成列表中是可见的,它们不应该在代码完成列表中可见 例如(AClass.m): 当我将AClass.h导入其他类并创建一个AClass实例时 AClass *test = [[AClass alloc] init]; Xcode的代码完成显示了“private”方法“someMethod”: 此时,这个方法是可见的,即使它不应该是可见的,因为它在这里是未知的-它没有

我看到了一个类似的问题。我的问题涉及Xcode(3.2)的一个特定行为

当我在类扩展中声明“private”方法时,这些方法在代码完成列表中是可见的,它们不应该在代码完成列表中可见

例如(AClass.m):

当我将AClass.h导入其他类并创建一个AClass实例时

AClass *test = [[AClass alloc] init];
Xcode的代码完成显示了“private”方法“someMethod”:

此时,这个方法是可见的,即使它不应该是可见的,因为它在这里是未知的-它没有在头文件中定义。如果我在此时发送消息[test someMethod]并构建这个东西,我会得到一个警告,对象可能不会响应——正如预期的那样

它确实有响应,但这是一种令人困惑的行为,特别是对于其他想使用我的类的人

这也会影响@property/@synthesis,因为它们“只是替换方法”。我想通过属性访问我的所有私有IVAR,a)具有同源代码,而b)能够影响IVAR的使用(如延迟实例化)。另一方面,所有私有内容都不应该对任何使用我的类的人可见(在代码完成时),以便于使用它们

有没有办法改变这种行为

Xcode 3.2中缺少上下文验证是原因吗?为什么代码完成显示了这种方法,而它们不应该是可见的

这种行为在Xcode 4中是否有所不同(因为上下文验证)

我仍然使用Xcode 3.2,因为我想在切换并适应Xcode 4之前完成一个项目

AClass *test = [[AClass alloc] init];
[test som     // Shows someMethod, though it shouldn't be visible here