美文网首页
iOS 关联对象

iOS 关联对象

作者: 男人宫 | 来源:发表于2020-03-20 21:09 被阅读0次

关联对象简单的说就是运用oc语言的运行时特性(runtime),给类别加属性(当然不止加属性).正常的类中创建一个属性,类会自动的为你默认创建setter和getter方法,虽然你看不到,但确实存在.但类别上上创建属性就得我们去手动用管来你对象去实现存取方法.所以关联对象就可以会发挥作用了

#import <objc/runtime.h>

@interface NSObject (AssociatedObject)

@property (nonatomic, strong) id property;

@end

@implementation NSObject (AssociatedObject)
@dynamic property;

- (void)setProperty:(NSString *)property {
    objc_setAssociatedObject(self, @selector(property), property, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
//这里的 _cmd 代指当前方法的选择子,也就是 @selector(property)方法。
- (id)property {
    return objc_getAssociatedObject(self, _cmd);
}



@end

相关文章

  • iOS关联对象技术原理

    iOS关联对象技术原理 iOS关联对象技术原理

  • iOS底层原理总结 - 关联对象实现原理

    iOS底层原理总结 - 关联对象实现原理 iOS底层原理总结 - 关联对象实现原理

  • iOS Objective-C 关联对象

    iOS Objective-C 关联对象 1. 关联对象简介 对于关联对象,我们熟悉它的地方就是给分类添加属性。虽...

  • iOS对象关联

    什么是关联对象 关联对象是指某个OC对象通过一个唯一的key连接到一个类的实例上。 举个例子:xiaoming是P...

  • iOS:关联对象

    目录一,添加属性二,基本知识三,底层原理四,注意点 一,添加属性 1,在类中添加属性,系统会自动生成带下划线的成员...

  • iOS 关联对象

    在平时的工作中经常碰到给类别添加属性的操作,那么实现思路是怎么样的呢? 代码实现:新建一个Person类和Pers...

  • iOS 关联对象

    可以不改变源码的情况下增加实例变量。可与分类配合使用,为分类增加属性。(类别是不能添加成员变量的(property...

  • iOS 关联对象

    关联对象简单的说就是运用oc语言的运行时特性(runtime),给类别加属性(当然不止加属性).正常的类中创建一个...

  • iOS 关联对象

    在上一篇文章中我们理解了load&&initialize,Category---为什么只能加方法不能加属性[htt...

  • iOS 关联对象

    objc_setAssociatedObject 关联对象使用关联,我们可以不用修改类的定义而为其对象增加存储空间...

网友评论

      本文标题:iOS 关联对象

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