类别、扩展

扩展 (Class Extension也有人称为匿名分类)

  • 作用:
    • 能为某个类附加额外的属性,成员变量,方法声明
    • 一般的类扩展写到.m文件中
    • 一般的私有属性写到类扩展
  • 使用格式:
    @interface Mitchell()
    //属性
    //方法
    @end

扩展,一般使用在实现类的地方,在该类的.m中实现,一般实现一些不想对外暴露的属性和方法;


分类

分类能够做到的事情主要是: 即使在你不知道一个类的源码情况下,向这个类添加扩展的方法
 
此外,分类能够保证你的实现类和其他的文件区分开。

比如:
UIImage+Addons.h

@interface UIImage (Addons)

+ (UIImage *)imageWithColor:(UIColor *)color size:(CGSize)size;

@end


UIImage+Addons.m

@implementation UIImage (Addons)

+ (UIImage *)imageWithColor:(UIColor *)color size:(CGSize)size {

    return [UIImage imageWithColor:color strokeColor:nil size:size radius:0.f];

}

@end


OC的分类允许给分类添加属性,但不会自动生成getter、setter方法,可以通过关联来实现。

-(void)setStr:(NSString *)str  
{  
    objc_setAssociatedObject(self, strKey, str, OBJC_ASSOCIATION_COPY);  
}  

-(NSString *)str  
{  
    return objc_getAssociatedObject(self, strKey);  
}
@end


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值