我有一个问题想咨询你。以下:
A类来自ios框架,A类的一个实例变量B不是公共的,我可以通过类别C中定义的getter方法来访问实例变量B吗?类别C是A类的自定义。
示例,类UIView.can的实例变量_viewDelegate我创建了UIView的类别C来访问实例变量_viewDelegate?如果在类别C中定义方法 - (UIViewController *)viewDelegate;
谢谢你,先!
答案 0 :(得分:0)
如果问题是“我可以通过类别访问私有变量”,那么答案是 - 依赖。
首先,必须在.h文件中定义变量。
如果是,则如果标记为只读,则只能读取它。例如: @property(nonatomic,readonly)somePropertyOfClassA
否则,您可以在没有getter / setter的情况下直接读取/写入属性,例如@property(非原子)NSInteger标记
UIView _viewDelegate被标记为@package,这意味着该成员只能从定义它的框架访问,即ios框架。