iOS:尝试调用类别中实现的方法

时间:2012-08-27 18:08:17

标签: objective-c ios categories

此问题的前提是here

我有一个班级(A),班级有班级。在类别中,我已经定义并实现了一种方法。

现在我正在尝试(让我们假设B)类调用[someMethod]。我的B类无法达到此方法。是不是可以从其他类中调用meths类别?

3 个答案:

答案 0 :(得分:4)

您没有显示您的代码,但在引用类别方法的.m文件中,您需要导入定义类别界面的文件的标题。

答案 1 :(得分:1)

如果在.m文件中定义类别,则无法从该.m文件外部调用类别的方法。

答案 2 :(得分:0)

很遗憾,您没有提供有关您的问题的足够信息。因此,我们所能做的只是告诉你应该怎么做,并猜测你遇到麻烦的原因。

发布问题时,您应该发布所有相关信息。在这种情况下,那将是不起作用的代码。

另外,你的陈述

  

我的B班无法达到此方法。

几乎没有任何意义。你得到编译器错误,运行时错误,语法窗口没有显示它,你究竟是什么意思?

现在,当您在类上实现类别时,您希望在标题(.h)文件中声明类别...

@interface Foo (BarExtensions)
- (NSString*)bar;
@end

然后,在实现(.m)文件中,提供这些方法的实现。

@implementation Foo (BarExtensions)
- (NSString*)bar {
    return @"FooBar";
}
@end

当然,你应该恰当地命名。

另外,请确保将.m文件包含在为目标构建的文件列表中。

如果你这样做,那就没什么可错的。