【发布时间】:2012-03-12 09:45:03
【问题描述】:
我正在尝试在 .m 文件中为一个类别声明一个私有 @interface。
对于正常的课程,我会这样做:
@interface ClassA ()
@end
@implementation ClassA
@end
它会顺利运行。
对于我尝试过的具有类别的课程:
@interface ClassA (CategoryA) ()
@end
@implementation ClassA (CategoryA)
@end
但它给出了各种不同的错误。我正在尝试“扩展”一个类别,即通过此语法@interface ClassA () 扩展类的方式。
我想拥有该类别的私有方法,并且我想知道,除了公开的接口之外,我是否可以在 .m 文件中放置第二个类别@interface,它不会公开实例变量和类本身之外的方法。
类似这样的:
ClassA+categoryA.h
@interface ClassA (CategoryA)
<some public methods>
@end
ClassA+categoryA.m 文件
@interface ClassA (CategoryA)
<some private methods>
@end
@implementation ClassA (CategoryA)
<here I want to be able to call the private methods above>
@end
现在这在 Xcode 中给了我一个警告:
接口“ClassA”上的类别“CategoryA”的重复定义
有没有办法得到这种行为?
【问题讨论】:
-
-1 的原因是什么?我是不是做错了什么?
-
有点含糊,你应该提供你所说的错误。但我认为答案已经足够清楚了。
-
这些错误与这里无关,它们显然是由于 xCode 不理解我尝试应用的语法。
-
很明显是xCode不理解语法,这是语法错误造成的。
-
这个问题是问什么是正确的语法来实现我想要的,并知道它是否可能。我对 xCode 告诉我有语法错误没问题,我刚刚猜到语法可能是什么,但我猜错了;)
标签: objective-c class categories