iOS开发

OC 类的私有属性

2017-03-17  本文已影响126人  chenhh6701

oc中函数没有private属性,这和动态有关
可以用performSelector 调用私有函数。
同时子类也可以通过[sub_object performSelector:@selector(super_privateMethod)]调用父类的私有方法,这刚好符合oc的动态函数的思想。
同时oc的"."语法是通过setter和getter函数间接实现的,所以有相应方法的私有属性也可以通过performSelector获取。

例子:
@importation SubObject{
NSString* string;
}

像上面的 string属性没有setter和getter方法,所以无法通过performSelector获取,除非类中实现了-(void) string; 对应的方法
string 只是一个实例变量并非属性。可用_>访问

遗留问题:

私有方法是否可以通过runtime机制更改实现?

上一篇 下一篇

猜你喜欢

热点阅读