{:3_50:}好大一个坟...
比如,把方法声明在实现文件中,不在头文件中公开声明,这样在 ARC 下调用会直接报错而不仅仅只是一个警告.
但是如果知道方法名,甚至参数类型,可以通过 performSelector 系列方法或者用 NSInvocation 调用,丧心病狂地还可以用 objc_msgSend 函数甚至直接拿到方法对应的 IMP 也就是函数指针像 C 函数那样直接调用.
另外,私有变量也很难做到真正私有.在知道变量名的情况下,可以使用 KVC 的 setValue:ForKey:, valueForKey:之类的方法访问.
基本上声明私有就得了,非要丧心病狂去访问也是没辙,Objective-C是非常动态的语言.
|