开发者社区> 问答> 正文

Objective-C可否做变量注入

在运行时Objective-C能不能想对象实例里注入一个对象?我看框架里都没有这样用的,是否不支持
或者有没有类似魔术方法之类的可以侧面实现?
如果可以实现的话,性能如何?

补充:举例说明
对象

@interface ObjA:NSObject
@end
@implement ObjA
@end
ObjA *obja = [[ObjA alloc] init];
// 在这里运行一段代码,把本没有定义的prop属性注入对象 obja
NSLog(@"%@", obja.prop);
本来ObjA里没有定义prop这个属性,但是我通过 get 方法调用的时候,我希望可以调用到。

展开
收起
a123456678 2016-07-20 14:31:56 1861 0
1 条回答
写回答
取消 提交回答
  • ObjA *obja = [[ObjA alloc] init];
    objc_setAssociatedObject(obja, @"prop", @"SomeValueForProp", OBJC_ASSOCIATION_RETAIN_NONATOMIC);
    NSLog(@"%@", objc_getAssociatedObject(self, @"prop"));
    输出:

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

    2019-07-17 19:58:50
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载