美文网首页
第25条:总是为第三方的分类名称加前缀

第25条:总是为第三方的分类名称加前缀

作者: MrSYLong | 来源:发表于2018-09-23 23:15 被阅读6次

分类机制通常用于向无源码的既有类中新增功能。这样容易产生一个问题,在运行期系统加载分类时,会将分类中实现的每个方法直接添加到类的方法列表中,如果类中本来就有此方法,而分类又实现一遍,那分类的方法会覆盖之前的实现代码,可能发生很多次覆盖,以最后一个覆盖的分类为准。

解决分类方法的覆盖问题:一般是以命名空间来区别各个分类的名称与其中定义的方法。就是给分类名称与分类中的方法前都加上某个共用的前缀。

某个类的分类中加入方法,那么应用程序中,该类的每个实例变量均可调用这些方法。

#import <Foundation/Foundation.h>

@interface NSString (HTTP)

- (NSString *)urlEncodedString;

- (NSString *)urlDecodedString;

@end

加前缀

#import <Foundation/Foundation.h>

@interface NSString (ABC_HTTP)

- (NSString *)abc_urlEncodedString;

- (NSString *)abc_urlDecodedString;

@end

相关文章

网友评论

      本文标题:第25条:总是为第三方的分类名称加前缀

      本文链接:https://www.haomeiwen.com/subject/ydcqoftx.html