zoukankan      html  css  js  c++  java
  • iOS 给已有的类添加属性.

    比如说给UIView 添加一个name 的属性,

    步骤:

    1. 创建 UIView + addProperty.h / UIView + addProperty.m 的类目,

    然后在UIView + addProperty.h 中添加一个属性,

    @property(nonatomic,strong)NSString *name;

     2. 在.m  中重写get /set 方法.

    @dynamic name;

    static char charKey;

    - (void)setName:(NSString *)name

    {

        objc_setAssociatedObject(self, &charKey, name, OBJC_ASSOCIATION_RETAIN_NONATOMIC);

    }

    - (NSString *)name

    {

        return objc_getAssociatedObject(self, &charKey);

    }

    3. 解释一下 objc_setAssociatedObject 方法

     //1 源对象(在这里 是给view 添加的属性,所以 就是 view 自己)

        //2 关键字 唯一静态变量key associatedkey

        //3 关联的对象 ,这个地方是name值,sender

        //4 关键策略  OBJC_ASSOCIATION_ASSIGN

        //    enum {

        //        OBJC_ASSOCIATION_ASSIGN = 0,           若引用/**< Specifies a weak reference to the associated object. */

        //        OBJC_ASSOCIATION_RETAIN_NONATOMIC = 1, /**< Specifies a strong reference to the associated object.

        //                                                *   The association is not made atomically. */

        //        OBJC_ASSOCIATION_COPY_NONATOMIC = 3,   /**< Specifies that the associated object is copied.

        //                                                *   The association is not made atomically. */

        //        OBJC_ASSOCIATION_RETAIN = 01401,       /**< Specifies a strong reference to the associated object.

        //                                                *   The association is made atomically. */

        //        OBJC_ASSOCIATION_COPY = 01403          /**< Specifies that the associated object is copied.

        //                                                *   The association is made atomically. */

        //    };

  • 相关阅读:
    Linux指令集
    [日记]贝鲁特煎熬第32天
    2019南京区域赛ABCHJK题解 & KMbfs(O(n^3))板子
    欧拉筛质数以及四大积性数论函数(欧拉函数、莫比乌斯函数、约数个数函数、约数和函数)
    简短的自我介绍
    BSTTreap名次树数组&指针实现板子 Ver1.0
    2019银川区域赛BDFGHIKN题解
    安装vs2010
    SPEmailEventReceiver 之导入附件EXCEL
    为incoming mail绑定事件,SPEmailEventReceiver
  • 原文地址:https://www.cnblogs.com/yinyakun/p/5882160.html
Copyright © 2011-2022 走看看