类别是为现有类添加新方法的一种方式,类别只能增加方法,不能增加实例变量。
扩展 :扩展就是匿名分类,下面是一个扩展的例子
@interface ClassA()end
匿名分类可以添加变量和方法,添加的方法一定要在主类的实现部分实现,添加的方法是私有方法
1,定义一个类的类别,在类别里面声明方法,该类的对象可以在其他.m文件中调用类别的方法。
在头文件里声明,这里定义了一个NSDictionary的类别
@interface NSDictionary (URL)
- (NSString *)URLString;
@end
在.m文件实现该类别
@implementation NSDictionary (URL)
- (NSString *)URLString
{
NSMutableArray *array = [NSMutableArrayarray];
for (NSString *keyinself) { //在字典里遍历它的key
NSString *value = [selfobjectForKey:key];
[arrayaddObject:[NSStringstringWithFormat:@"%@=%@", key, value]];
}
return [arraycomponentsJoinedByString:@"&"];
}
@end