我有一个类,我想从字典中设置值。用字典自动填充Objective C实例的所有属性
换句话说,我想自动完成:除非我失去了一些东西,为什么不创建一个方法
for key, value in dict:
setattr(objectInstance, key, value)
我有一个类,我想从字典中设置值。用字典自动填充Objective C实例的所有属性
换句话说,我想自动完成:除非我失去了一些东西,为什么不创建一个方法
for key, value in dict:
setattr(objectInstance, key, value)
您可以使用键值编码方法setValuesForKeysWithDictionary:
。它确实是你想要的。只需[someObject setValuesForKeysWithDictionary:propertiesDictionary]
。
OK:像这样的东西(伪代码)
objectInstace.val1 = [dict objectForKey:@"val1"];
objectInstace.val2 = [dict objectForKey:@"val2"];
像:
setObjectProperties:(ID)对象withValues:(NSDictionary的*)字典
对不起,我的问题还不够清楚。我澄清了它。 – 2009-11-19 03:53:33
我已经从来没有这样做,但是这似乎像它应该工作:
对于在dictonary每个key
:
NSString* setMethod = "set" + [key capitalizedString] + ":"; // This is pseudo-code.
SEL setSelector = NSSelectorFromString(setMethod);
[objectInstance performSelector:setSelector withObject:[dict objectForKey:key]];
(形成setMethod
的代码作为一个练习伪代码&,因为对象 - 字符串操纵是可怕的)。
可以承认它是Python(虽然你需要一个.iteritems()或.items()在那里:-) – 2009-11-19 04:10:31