美文网首页
OC中Category(与Swift中的扩展类似)

OC中Category(与Swift中的扩展类似)

作者: Dove_Q | 来源:发表于2016-09-19 14:53 被阅读227次

    在Category中添加成员变量

    .h文件

    @interface UIView (UIViewHelp)
    @property (nonatomic,copy)NSString *name;
    @end
    

    .m文件

    //特别注意要导入runtime包才可以对category的成员变量实现set和get方法提供中间桥梁
    #import <objc/objc-runtime.h>
    @implementation UIView (UIViewHelp)
    - (void)setName:(NSString *)name{
        objc_setAssociatedObject(self, "kname", name, OBJC_ASSOCIATION_COPY);
    }
    - (NSString *)name{
        NSString* _name = (NSString*)objc_getAssociatedObject(self, "kname");
        return _name;
    }
    @end
    

    扩展(与swift的扩展完全不同,只是名字一样而已)

    一般用于文件中定义私有变量

    @interface ViewController ()
    {
        NSInteger _count;
    }
    @end
    

    相关文章

      网友评论

          本文标题:OC中Category(与Swift中的扩展类似)

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