苹果的swizzle,利用runtime进行方法交换.
例子1.在网络请求中,一个url如果不合法但执行结果错误,OC不会给提示. 比如
NSURL * url = [NSURL URLWithString:@"http://www.baidu.com/哈哈"]
中出现中文.利用runtime方法交换,可以实现对url的校验而不需要在原有代码里有任何改变.
首先添加一个NSURL的分类
在test分类.h里添加需要替换原有url的方法
再在.m中实现方法交换
这样以来你不需要在工程中做出任何改变,就可以实现把调换系统方法的效果.下面是运行结果
网友评论