您好,匿名用户
随意问技术百科期待您的加入

Objective-C可否做变量注入

0 投票

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

补充:举例说明

对象

@interface ObjA:NSObject
@end
@implement ObjA
@end
ObjA *obja = [[ObjA alloc] init];
// 在这里运行一段代码,把本没有定义的prop属性注入对象 obja
NSLog(@"%@", obja.prop);

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

用户头像 提问 2014年 1月27日 @ Leona 上等兵 (279 威望)
分享到:

1个回答

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

输出:

SomeValueForProp

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

用户头像 回复 2014年 1月29日 @ Udyr 上等兵 (341 威望)
提一个问题:

相关问题

0 投票
0 回复 36 阅读
0 投票
0 回复 28 阅读
用户头像 提问 2012年 12月1日 @ Warwick 上等兵 (286 威望)
0 投票
1 回复 36 阅读
0 投票
1 回复 31 阅读
用户头像 提问 2014年 1月20日 @ 阿尔托莉雅 下士 (587 威望)
+1 投票
1 回复 48 阅读
用户头像 提问 2012年 12月26日 @ Ares 上等兵 (353 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...