为了账号安全,请及时绑定邮箱和手机立即绑定

本来ObjA里没有定义prop这个属性,但是我通过 get 方法调用的时候,我希望可以调用到。

本来ObjA里没有定义prop这个属性,但是我通过 get 方法调用的时候,我希望可以调用到。

iOS
不负相思意 2023-04-25 19:15:16
在运行时Objective-C能不能想对象实例里注入一个对象?我看框架里都没有这样用的,是否不支持或者有没有类似魔术方法之类的可以侧面实现?如果可以实现的话,性能如何?对象@interface ObjA:NSObject@end@implement ObjA@endObjA *obja = [[ObjA alloc] init];// 在这里运行一段代码,把本没有定义的prop属性注入对象 objaNSLog(@"%@", obja.prop);
查看完整描述

1 回答

?
12345678_0001

TA贡献1802条经验 获得超5个赞

ObjA *obja = [[ObjA alloc] init];
objc_setAssociatedObject(obja, @"prop", @"SomeValueForProp", OBJC_ASSOCIATION_RETAIN_NONATOMIC);NSLog(@"%@", objc_getAssociatedObject(self, @"prop"));

输出:

SomeValueForProp

另外,你那行NSLog(@"%@", obja.prop); .prop本身就是静态的。


查看完整回答
反对 回复 2023-04-28
  • 1 回答
  • 0 关注
  • 155 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信