创建一个未命名的分类,且在括号“()”中不指定分类的名字,是一种特殊情况。
关于扩展,你可以这样理解:扩展是一种匿名分类;但是和匿名分类不一样的是,扩展可以添加新的实例变量。
并且,未命名分类中的方法需要在主实现文件中实现,而不是在分离的实现文件中实现。如果,没有实现未命名分类的接口部分的全部方法,编译器会发出警告。
未命名的分类是非常有用的,因为他们的方法都是私有的。如果需要写一个类而且数据和方法仅供这个类使用,未命名类比较合适。
假设有一个名为 GraphicObject的类,而且GraphicObject.m的实现文件为:
#import "GraphicObject.h"
@interface GraphicObject ()
@property int uniqueID;
-(void) doStuffWithUniqueID: (int) theID
@end
@implementation GraphicObject
@synthesize uniqueID;
-(void) doStuffWithUniqueID: (int) theID
{
self.uniqueID = theID;
}
...
//其他的GraphicObject 方法
@end