2009-11-19 66 views
2

我有一个类,我想从字典中设置值。用字典自动填充Objective C实例的所有属性

换句话说,我想自动完成:除非我失去了一些东西,为什么不创建一个方法

for key, value in dict: 
    setattr(objectInstance, key, value) 
+2

可以承认它是Python(虽然你需要一个.iteritems()或.items()在那里:-) – 2009-11-19 04:10:31

回答

0

OK:像这样的东西(伪代码)

objectInstace.val1 = [dict objectForKey:@"val1"]; 
objectInstace.val2 = [dict objectForKey:@"val2"]; 

像:

setObjectProperties:(ID)对象withValues:(NSDictionary的*)字典

+0

对不起,我的问题还不够清楚。我澄清了它。 – 2009-11-19 03:53:33

0

我已经从来没有这样做,但是这似乎像它应该工作:

对于在dictonary每个key

NSString* setMethod = "set" + [key capitalizedString] + ":"; // This is pseudo-code. 
SEL setSelector = NSSelectorFromString(setMethod); 
[objectInstance performSelector:setSelector withObject:[dict objectForKey:key]]; 

(形成setMethod的代码作为一个练习伪代码&,因为对象 - 字符串操纵是可怕的)。

+1

这只是重塑KVC车轮。 – Chuck 2009-11-19 04:02:18

+0

当然是!我建议为接受的答案投票(这是我的新闻)。 – Grumdrig 2009-11-19 04:47:46