ios中运行机制三个常用机制

/**
 *  分类中不能定义成员变量,不能直接定义属性
 *  如果定义了属性,必须自己重写getter&setter方法
 *  

     如果分类中,能够实现纪录属性功能.
     需要用到'运行时机制',是开发OC语言的!
     
     在日常开发中用到三个场景
     1.在分类中,通过关联对象,给分类动态添加属性,能够让分类解耦,开发框件。
     2.动态获得一个类的属性列表,可以开发字典模型转模型的框架。
     3.交换方法,动态交换方法的地址,用处主要用在接管系统方法。
 *
 *
 */
    /**
     *  动态关联属性
     1.关联到的对象
     2.属性的key  const void *key 定义一个常量 (语法相当于id)
     3.纪录属性的值
     4.关联的引用
     OBJC_ASSOCIATION_ASSIGN   ARC中的assign
     OBJC_ASSOCIATION_COPY     ARC中的COPY
     OBJC_ASSOCIATION_COPY_NONATOMIC  ARC中的线程保护问题
     OBJC_ASSOCIATION_RETAIN
     OBJC_ASSOCIATION_RETAIN_NONATOMIC  ARC中的Strong
     
     weak 和 assgin区别
     相同点:
          都不会强引用。
     不同点:
          weak引用的对象,一旦引用计数为0,会自动指向nil
          assign引用的对象,一旦引用计数为0,对象地址不变,因此MRC下,会出现野指针的问题。也是常见bug
        
          objc_setAssociatedObject(<#id object#>, <#const void *key#>, <#id value#>, <#objc_AssociationPolicy policy#>)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值