+[NSMethodSignature signatureWithObjCTypes:]: type signature is empty.

+[NSMethodSignature signatureWithObjCTypes:]: type signature is empty.

NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:methodSignature];

方法交换后出现invocationWithMethodSignature这个crash。

交互oldsel和newsel。

由于你交换前的oldsel也是不存在的。所以崩了。
解决方法判断交互前你的target是不是存在这个oldsel,如果不存在则addmethod。
然后在进行oldsel和newsel的交换。

你可能感兴趣的:(+[NSMethodSignature signatureWithObjCTypes:]: type signature is empty.)