美文网首页iOS高级进阶
如何实现给分类“添加成员变量”?

如何实现给分类“添加成员变量”?

作者: 南城同學 | 来源:发表于2017-08-19 09:08 被阅读0次
  • 手动实现set/get方法;

  • 知识点:关联对象。

.h

@interface Person (Test)
@property (copy, nonatomic) NSString *name;
@end
.m

#import <objc/runtime.h>

- (void)setName:(NSString *)name {
    // @selector(name) 在此处的作用是作为一个 key
    objc_setAssociatedObject(self, @selector(name), name, OBJC_ASSOCIATION_COPY_NONATOMIC);
}

- (NSString *)name {
    // 隐式参数
    // _cmd == @selector(name)
    return objc_getAssociatedObject(self, _cmd);
}

相关文章

  • Category-关联对象

    分类添加属性 Category能否添加成员变量?如果可以,如何给Category添加成员变量?不能直接给Categ...

  • Category分类添加成员变量

    思考:如何实现给分类“添加成员变量”? 默认情况下,因为分类底层结构的限制,不能添加成员变量到分类中。但可以通过关...

  • 探索关联对象的原理

    思考:如何实现给分类“添加成员变量”? 默认情况下,因为分类底层结构的限制,不能添加成员变量到分类中。但可以通过关...

  • iOS开发(8)关联对象

    思考:如何实现给分类“添加成员变量”? 默认情况下,因为分类底层结构的限制,不能添加成员变量到分类中。但可以通过关...

  • 关联对象

    如何实现给分类“添加成员变量”? 默认情况下,因为分类底层结构的限制,不能添加成员变量到分类中。可以通过关联对象来...

  • 关联对象-给分类“添加成员变量”

    思考:如何实现给分类“添加成员变量”? 默认情况下,因为分类底层结构的限制,不能添加成员变量到分类中。但可以通过关...

  • 如何给 Category 添加属性?关联对象以什么形式进行存储?

    分类无法添加成员变量,在分类中定义了属性,系统没有生成对应的成员变量,也没有实现set和get方法。那我们如何实现...

  • 分类中关联对象实现

    前言: 分类中虽然不能直接添加成员变量,但是我们可以通过间接实现添加成员变量 方法一:使用静态全局变量给分类添加属...

  • 关联对象

    接上篇 首先我们考虑下是否能为分类添加“成员变量”?答:我们不能在分类的声明定义实现的时候直接为分类添加成员变量,...

  • iOS-浅谈OC中的关联对象

    目录 前言工作中遇到问题的思考---- 直接在分类添加成员变量---- 在分类中增加属性如何在分类中添加成员变量?...

网友评论

    本文标题:如何实现给分类“添加成员变量”?

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