Objective C - 是否可以从另一个相同类型的类别中调用类别的方法?

问题描述:

我想知道是否可以在另一类相同类型中实际调用类别的方法。我试过这样做,但似乎并不奏效。我想知道这是一种合适的方式,或者至少可能吗?Objective C - 是否可以从另一个相同类型的类别中调用类别的方法?

对于前:

CategoryA文件

@implementation UIImage (UIImage+CategoryA) 

-(void)doThis { 
    NSLog(@"Something...."); 
} 

类别b文件

#import "UIImage+CategoryA.h" 

@implementation UIImage (UIImage+CategoryB) 

-(void)someMethod { 
    [self doThis]; // Can I do this? 
} 


任何讨论/答案/见解是值得欢迎的。

+1

“似乎不起作用”是什么意思? –

+1

看起来应该可以工作。你得到的错误是什么? –

+0

我收到编译器错误:'UIImage'没有可见的@interface声明选择器'doThis'。 –

类别为原始类添加方法。这是Objective-C,所以没有访问控制的概念:只要它们存在,它们就可以被所有人访问。因此,任何带有指向类的实例和类别知识的指针都可以调用它们。这包括在同一类别的其他类别中实施的方法。

所以,是的,这是可能的。

+0

拍摄。正如我怀疑的那样,问题在于Xcode索引不正确。清理并重新启动Xcode后,一切正常(面掌)。需要坚持基础。谢谢回答。 :) –