美文网首页
分类Category的使用

分类Category的使用

作者: 买买提不撸串 | 来源:发表于2018-01-05 18:57 被阅读0次

Category可以为已存在的类添加方法,包括系统类,原则不能添加属性,但添加不会报错,可是不能使用,要想用的话可以结合runtime使用

#import "Person.h"

@interface Person (Percate)

//分类中写了属性,用runtime机制实现setter、getter方法

@property(nonatomic,copy)NSString*str;

@end

.m文件中

#import "Person+Percate.h"

#import <objc/runtime.h>

static NSString *strKey=@"strKey"; //一个属性定义一个

@implementation Person (Percate)

-(void)setStr:(NSString *)str{

    objc_setAssociatedObject(self, &strKey, str,OBJC_ASSOCIATION_COPY);

    /*

    strong修饰的类型用 OBJC_ASSOCIATION_RETAIN_NONATOMIC

    copy  修饰的类型用 OBJC_ASSOCIATION_COPY

    assin 修饰的类型用 OBJC_ASSOCIATION_ASSIGN

    */

}

-(NSString*)str{

    return objc_getAssociatedObject(self, &strKey);

}

这样就可以正常使用了

有些为系统类添加的分类如:NSString、NSDate、UIImage、UILabel等不想在使用引入分类的头文件,那么可以把这些分类的头文件写在pch文件中

相关文章

网友评论

      本文标题:分类Category的使用

      本文链接:https://www.haomeiwen.com/subject/cyisnxtx.html