今天看项目老代码 看到 objc_setAssociatedObject , 因为之前很少用runtime方法,不知所以,就网上查了下,本文涉及这两个方法,简单来说 一个负责赋值,一个负责取值


//给指定对象添加属性,并设置value 

objc_setAssociatedObject的简单使用
0.jpg

//policy 策略 枚举

enum {

OBJC_ASSOCIATION_ASSIGN = 0,

OBJC_ASSOCIATION_RETAIN_NONATOMIC = 1,

OBJC_ASSOCIATION_COPY_NONATOMIC = 3,

OBJC_ASSOCIATION_RETAIN = 01401,

OBJC_ASSOCIATION_COPY = 01403

};

//下面是一个简单的使用


首先导入头文件#import<objc/runtime.h>

拖拽一个 button点击方法下给alert添加属性@"key property"对应value @"李凯利",点击alert 获取添加的属性值

objc_setAssociatedObject的简单使用
1.jpg

运行结果:

objc_setAssociatedObject的简单使用
2.jpg

//扩展

//移除指定对象实例的所有扩展属性

OBJC_EXPORT void objc_removeAssociatedObjects(id object)

OBJC_AVAILABLE(10.6, 3.1, 9.0, 1.0);

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-01-05
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-02
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-18
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案