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机制更改实现?