Object-C学习(一)——类别的创建、实现及调用
//定义类别 @class NoteClass; @interface NoteClass (NoteCategory) -(BOOL)testSameNote:(NoteClass *)aNote; @end
//实现类别 #import "NoteClass.h" #import "NoteCategory.h" @implementation NoteClass(NoteCategory) -(BOOL)testSameNote:(NoteClass *)aNote{ if([self.date isEqualTo:aNote.date] &&[self.content isEqualTo:aNote.content]){ return YES; } return FALSE; } @end
类别的局限性:
第一、 无法向类别中添加新的实例变量,类别没有位置容纳实例变量。
第二、 名称冲突,即类别中的方法与现有的方法重名。当发生名称冲突时,类别具有更高的优先级。你的类别方法将完全取代初始方法,从而无法再使用初始方法。有些编程人员在自己的类别方法名中增加一个前缀,以确保不发生名称冲突。
类别的作用:
1、 将类的实现分散到多个不同的文件或多个不同框架中;
2、 创建对私有方法的前向引用;
3、 向对象添加非正式协议。