2

辞書から値を設定したいプロパティを持つクラスがあります。

言い換えれば、私はこれを自動化したいと思います:

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

このようなもの(擬似コード):

for key, value in dict:
    setattr(objectInstance, key, value)
4

3 に答える 3

9

Key-Value コーディング方式を使用できますsetValuesForKeysWithDictionary:。それはあなたが望むことを正確に行います。ただ[someObject setValuesForKeysWithDictionary:propertiesDictionary]

于 2009-11-19T03:59:59.233 に答える
0

私はこれをやったことがありませんが、これはうまくいくようです:

辞書のそれぞれについてkey

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

(形成するコードsetMethodは疑似コードであり、Obj-C の文字列操作がひどいため、演習として残します。)

于 2009-11-19T03:55:28.290 に答える
0

次のようなメソッドを作成しないでください。

setObjectProperties: (id) Object withValues:(NSDictionary *)dict

于 2009-11-19T03:46:25.470 に答える