类别访问主类的私有方法-目标C

alex_joker

由于我正在编程的情况,我需要在一个类中实现一些方法而无需实际编辑该类,因此我正在使用类别。

麻烦的是,有些方法没有包含在类的接口中,而是在类的实现中实现的。我假设这只是意味着它们是私有方法。

类别是否不可能访问其主类的私有方法?当我尝试使用类别中的私有方法之一时,出现错误:

“'MainClass'的无可见@interface声明选择器'privateMethod'”

这是可以理解的,因为它不在界面中,但是我认为从逻辑上讲,我可以访问实现中的所有内容。

达伦

您要调用的方法需要在某处声明。您可以使用自己的类别自己声明它们:

@interface MainClass(MyPrivateMethods)
- (CGRect)privateMethod:(NSString*)someParameter;
@end

这将摆脱“ MainClass声明选择器没有可见的@interface声明”编译器警告,而您只希望它在运行时起作用即可。如果MainClass没有带有这些参数和返回类型的该名称的方法,则它将在运行时失败。

(您也可以使用,performSelector:但仍然会收到有关无法识别的选择器的警告,具体取决于您的编译器设置,并且不适用于所有参数和返回类型)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在目标C中从超类重写私有方法和属性

来自分类Dev

如何在目标C中从超类重写私有方法和属性

来自分类Dev

Objective-C类扩展与私有方法或变量

来自分类Dev

目标C类别

来自分类Dev

如何在C ++中的Normal或Singleton类内GoogleTest私有方法/枚举类

来自分类Dev

C#:无法在私有方法中访问公共方法

来自分类Dev

私有方法与C ++中的Lambda

来自分类Dev

如何在C#中隐藏基类的私有方法?

来自分类Dev

类目标c中所有方法的lldb断点

来自分类Dev

从类C ++外部访问私有静态方法

来自分类Dev

目标C:如何继承加载在父类中的类别方法?

来自分类Dev

目标C上的私有字段

来自分类Dev

目标C。多个匿名类别?

来自分类Dev

目标C。多个匿名类别?

来自分类Dev

目标C类方法与C函数

来自分类Dev

目标C类方法== C ++构造函数?

来自分类Dev

从目标c中的类外部访问属性

来自分类Dev

目标 c 访问释放的对象

来自分类Dev

如何在类方法目标C中访问自己

来自分类Dev

在目标c中访问类方法。使用的是self还是classname?

来自分类Dev

访问私有类C ++内部的结构

来自分类Dev

访问私有类C ++内部的结构

来自分类Dev

访问类C ++的私有变量

来自分类Dev

目标c中的方法重载

来自分类Dev

目标C中的方法顺序

来自分类Dev

单元测试C#,并测试私有方法

来自分类Dev

私有方法的单元测试 c#

来自分类Dev

从目标C中的方法访问实例变量

来自分类Dev

在目标c中做什么方法类