这个问题的前置问题在这里。
我有一个类(A),这个类有一个分类。在这个分类中,我定义并实现了一个方法。
现在我正在尝试在另一个类(假设为B)中调用[a someMethod]。我的B类无法调用这个方法。难道不可能从其他类调用分类方法吗?
这个问题的前置问题在这里。
我有一个类(A),这个类有一个分类。在这个分类中,我定义并实现了一个方法。
现在我正在尝试在另一个类(假设为B)中调用[a someMethod]。我的B类无法调用这个方法。难道不可能从其他类调用分类方法吗?
您没有展示您的代码,但在引用类别方法的.m文件中,您需要导入定义类别接口的文件头。
很遗憾,您没有提供足够的关于问题的信息。因此,我们只能告诉您应该如何做,并猜测为什么您会遇到麻烦。
当您发布一个问题时,您应该发布所有相关的信息。在这种情况下,那将是不起作用的代码。
此外,您的陈述
我的B类无法访问此方法。
几乎没有意义。您得到了编译器错误、运行时错误、语法窗口没有显示它,您到底是什么意思?
现在,当您在类上实现一个类别时,您想要在头文件(.h)中声明该类别...
@interface Foo (BarExtensions)
- (NSString*)bar;
@end
然后,在实现(.m)文件中为这些方法提供实现。
@implementation Foo (BarExtensions)
- (NSString*)bar {
return @"FooBar";
}
@end
当然,你应该适当地命名事物。
此外,请确保将.m文件包含在构建目标的文件列表中。
如果你这样做了,就不会有太多问题了。