此问题的前提是here。
我有一个班级(A),班级有班级。在类别中,我已经定义并实现了一种方法。
现在我正在尝试(让我们假设B)类调用[someMethod]。我的B类无法达到此方法。是不是可以从其他类中调用meths类别?
答案 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文件包含在为目标构建的文件列表中。
如果你这样做,那就没什么可错的。