当调用一个 NSObject 对象不存在的方法时,并不会马上抛出异常,而是会经过多层转发,层层调用对象的-resolveInstanceMethod:,-forwardingTargetForSelector:,-methodSignatureForSelector:,-forwardInvocation:等方法,其中最后-forwardInvocation:是会有一个 NSInvocation 对象,这个 NSInvocation 对象保存了这个方法调用的所有信息,包括 Selector 名,参数和返回值类型,最重要的是有所有参数值,可以从这个 NSInvocation 对象里拿到调用的所有参数值


了解下
网友评论