iOS 使用类目的坑

1.如果类目的方法跟隐藏方法冲突,会覆盖系统的,会造成使用系统方法,结果调用你写的。你可能会觉得这不基本的覆盖问题吗!但我这说的是隐藏方法,而且即使没有导入的类目的私有方法也会覆盖系统的方法。


NSObject+ChanHook中,我写了一个uuid方法
在viewController,获取照片url

例如在上面两张图中,获取相册url,系统会去执行一个隐藏的uuid方法,结果却执行了我类目写的uuid。

系统的uuid得到的url:assets-library://asset/asset.JPG?id=106E99A1-4F6A-45A2-B320-B0AD4A8E8473&ext=JPG。

类目的uuid得到的url:assets-library://asset/asset.JPG?id=318e46f140e84d34a8124e6391f65dd7&ext=JPG。

看出两个url中id这个值的区别了吧。

2.如果使用切面编程,你所hook的对象写了跟你类目相同的方法,客户的会覆盖你的,可能造成你的hook无法正常工作。

所以,要用类目,那最好命名别人不可能命名的,除非你本身就是要覆盖方法。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容