Ios 同一类的另一个接口中的访问方法

Ios 同一类的另一个接口中的访问方法,ios,objective-c,objective-c-category,Ios,Objective C,Objective C Category,我被这个问题难住了,请帮帮我。 我有一个类名为:FLViewController的ViewController。在.m文件中,我声明了一些其他接口: @接口FLViewController(内部方法) -(作废)更新按钮状态; @结束 @接口FLViewController(AVCaptureManagerDelegate) -(无效)adMobProcess @结束 在FLViewController的实现中,我调用接口FLViewController(AVCaptureManagerDe

我被这个问题难住了,请帮帮我。 我有一个类名为:FLViewController的ViewController。在.m文件中,我声明了一些其他接口:

@接口FLViewController(内部方法)
-(作废)更新按钮状态;
@结束
@接口FLViewController(AVCaptureManagerDelegate)
-(无效)adMobProcess
@结束
在FLViewController的实现中,我调用接口
FLViewController(AVCaptureManagerDelegate)
的方法
adMobProcess
,但编译器说“没有可见的@Interface for
FLViewController
声明选择器
adMobProcess


我可以将上面的方法移动到FLViewCOntroller的实现中(目前它位于类别AVCaptureManagerDelegate中),但是,我想知道如何在另一个类别中调用该方法

通过在.m文件中声明您的类别(这将其范围限制在该文件中),您有效地为
FLViewController
声明了一些私有方法。如果这是你想要的,你不需要分类


Objective-C中的类别是要重用的。因此,您希望在头文件(一个或多个文件)中声明类别,并将这些头文件包含在使用它们的任何.m文件中

我终于找到了原因。我没有在类别中声明方法签名,只是在类别实现块中声明了方法实现。我声明了方法,并且它可以工作。

谢谢,但是我如何从同一个类的实现中调用放置在类别中的方法呢。这里我在同一个.m文件中声明了一些类别。如果您的类别是在一个.h文件中声明的,那么您只需包含该文件,就可以从该类别中调用方法。我不知道如何使用.m文件中声明的类别(主要是因为这样做一开始似乎毫无意义。)为什么要使用私有类别?哦,通常我不会这样做,但我正在修复其他开发人员的错误:)@lenhhoxung:只需从.m文件中删除类别声明,瞧,问题解决了!)最简单的方法是只声明主接口中的所有方法。它们也可以在接口采用的协议中声明——不会有冲突。如果您需要在另一个协议中调用一个方法,请首先对其进行强制转换。例如,
[(我也注意到了,别忘了在Prefix.pch文件中以“正确的顺序”将它们放在导入语句中
@interface FLViewController (InternalMethods)
- (void)updateButtonStates;
@end

@interface FLViewController (AVCaptureManagerDelegate) <AVCaptureManagerDelegate>
-(void)adMobProcess
@end