在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
如果要对一个类进行扩展,通常的办法就是继承和组合。 比如需要为NSString类添加一个新的方法,继承的方式就不太可取,原因在于NSString是个class cluster,一个类簇。什么是一个类簇?简单的来说,NSString是个“工厂类”,然后它在外层提供了很多方法接口,但是这些方法的实现是由具体的内部类来实现的。当使用NSString生成一个对象时,初始化方法会判断哪个“自己内部的类”最适合生成这个对象,然后这个“工厂”就会生成这个具体的类对象返回给你。这种又外层类提供统一抽象的接口,然后具体实现让隐藏的,具体的内部类来实现,在设计模式中称为“抽象工厂”模式。 因此,对于 NSString,NSDictionary等“类簇”类时,最好用“组合”或者“Category”来进行扩展。 注意:Category只能用于方法,不能用于成员变量。 //如已定义Circle类,CircleCal.h文件中,
#import "Circle.h"
// CircleCal.m文件中,
#import "CircleCal.h"
参考: Cocoa核心能力:类簇
|
请发表评论