Objective-c中的动态对象属性

Ant*_*ick 0 iphone objective-c

如何在objective-c中的对象上创建动态属性?在ActionScript中我们可以做这样的事情

var obj : Object;
obj[ "myDynamicProperty" ] = true;
trace( obj.myDynamicProperty );
Run Code Online (Sandbox Code Playgroud)

我如何在objective-c中这样做?

我尝试了以下内容

NSObject *obj = [[NSObject alloc] init];
[obj setValue:@"labelValue" forKey:@"label"];
Run Code Online (Sandbox Code Playgroud)

但这只会引发运行时错误.任何帮助将非常感激.提前致谢.

Jas*_*man 10

Objects-NSObjects,具体 - Objective-C不允许使用任意属性设置KVC; 也就是说,它们不是键值容器.如果你想要一些可以接受任意键值对的东西,可以使用字典(NSMutableDictionary).

如果您足够舒服地下载到Obj-C运行时,也可以使用关联的对象API .objc_setAssociatedObject在文档中搜索以了解如何使用它API.