1.Category(分类,类别)
作用:
1)给类增加方法,在不修改原来类的基础上,但是不能增加属性;
2)如果一定要在分类中添加成员变量可以通过getter,setter来实现;
3)如果和类原有的方法一样,会覆盖原有的方法;
用途:
1)主要用来给系统自带的类扩展方法;
例子:
1)创建一个分类
UIView+Frame.h
@interface UIView(Frame)
-(void)setCenterX:(CGFloat )x andY:(CGFloat )y;
@property(nonatomic,assign) CGFloat centerX;
@property(nonatomic,assign) CGFloat centerY;
@end
UIView+Frame.m
@implementation UIView (Frame)
- (void)setCenterX:(CGFloat)x andY:(CGFloat)y {
self.center = CGPointMake(x,y);
}
-(CGFloat)centerX {
return self.frame.origin.x;
}
-(void)setCenterX:(CGFloat)centerX {
self.center = CGPointMake(centerX,self.center.y);
}
-(CGFloat)centerY {
return self.frame.origin.y;
}
-(void)setCenterY:(CGFloat)centerY {
self.center = CGPointMake(self.center.x,centerY);
}
2.Extension(类扩展)
作用
1)既可以给一个类添加属性又可以给一个类添加方法(添加的方法必须要实现);
2)在.m文件中实现;
例子
@interface UIView ()
@property(nonatomic,assgin) BOOL isLoading;
-(void)setCenterX:(CGFloat )x andY:(CGFloat )y;
@end
@implemention UIView
@end