美文网首页
runtime 对category的应用

runtime 对category的应用

作者: wlwl123 | 来源:发表于2016-10-27 09:40 被阅读0次

简述

category 规定是不能添加存储属性,即带有set方法的属性,通过runtime可以打破这一限制。

具体代码

  • 1 添加存储属性
@interface UIButton (YX)
@property (nonatomic) NSString *name;
@end``` 

* 2 重写
  • (void)setName:(NSString *)name{
    //绑定参数1对象的参数3的值 到 参数2的 key上, 这个值的内存管理方式 由参数4来决定
    //参数2: 需要是一个唯一值
    //写法有两种, static void *pp = &pp;
    //写法2 直接拿 get方法的指针
    objc_setAssociatedObject(self, @selector(name), name, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
    }```
  • 3 重写get方法
 - (NSString *)name{
    //_cmd 是 当前方法的指针
    return objc_getAssociatedObject(self, _cmd);
}

突破限制成功,Xcode不会报错了

相关文章

  • runtime 对category的应用

    简述 category 规定是不能添加存储属性,即带有set方法的属性,通过runtime可以打破这一限制。 具体...

  • iOS Runtime学习笔记 (二) - 实战应用

    iOS runtime实战应用 iOS runtime 进行添加属性,并支持KVO监听 iOS 中category...

  • iOS 的Category实现原理

    Category 加载过程原理 是通过runtime加载类的所有Category数据 把Category的方法、属...

  • Objective-C:Category

    Category的底层结构 Category的加载处理过程 通过Runtime加载某个类的所有Category数据...

  • OC分类

    Category底层结构 Category加载过程 1.通过Runtime加载某个类的所有Category数据 2...

  • iOS底层:Category

    Category的底层结构 Category的加载处理过程1、通过Runtime加载某个类的所有Category数...

  • iOS Category(分类)

    Category的加载处理过程 通过runtime加载某个类的所有category数据。 把所有的category...

  • category探究

    category本质 category attach2Class objc-os.mm objc-runtime-...

  • Category 庖丁解牛版

    一.Category的底层结构 在runtime运行中都是一个category_t的一个结构体,里面包含{类名,对...

  • Objective-C 之 Category

    Category 是基于 Objective-C runtime 的一种体现。 Category 原理首先,这里先...

网友评论

      本文标题:runtime 对category的应用

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