ios - Objective-C可否做变量注入
黄舟
黄舟 2017-04-17 11:29:13
0
1
254

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

补充:举例说明

对象

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

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

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全員に返信(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本身就是静态的。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!