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. */

        //    };

  • 相关阅读:
    leetcode网解题心得——61. 旋转链表
    leetcode面试题 02.06. 回文链表,解题心路
    池化技术——自定义线程池
    使用java基础实现一个简陋的web服务器软件
    操作系统中的经典问题——生产者消费者问题(两种方式实现)
    javascript垃圾收集 [重温JavaScript基础(三)]
    JavaScript 执行环境以及作用域链[重温JavaScript基础(二)]
    基本类型和引用类型的值 [重温JavaScript基础(一)]
    css中的函数
    z-index的展现形式
  • 原文地址:https://www.cnblogs.com/yinyakun/p/5882160.html
Copyright © 2011-2022 走看看