美文网首页
分类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