辞書から値を設定したいプロパティを持つクラスがあります。
言い換えれば、私はこれを自動化したいと思います:
objectInstace.val1 = [dict objectForKey:@"val1"];
objectInstace.val2 = [dict objectForKey:@"val2"];
このようなもの(擬似コード):
for key, value in dict:
setattr(objectInstance, key, value)
辞書から値を設定したいプロパティを持つクラスがあります。
言い換えれば、私はこれを自動化したいと思います:
objectInstace.val1 = [dict objectForKey:@"val1"];
objectInstace.val2 = [dict objectForKey:@"val2"];
このようなもの(擬似コード):
for key, value in dict:
setattr(objectInstance, key, value)
Key-Value コーディング方式を使用できますsetValuesForKeysWithDictionary:
。それはあなたが望むことを正確に行います。ただ[someObject setValuesForKeysWithDictionary:propertiesDictionary]
。
私はこれをやったことがありませんが、これはうまくいくようです:
辞書のそれぞれについてkey
:
NSString* setMethod = "set" + [key capitalizedString] + ":"; // This is pseudo-code.
SEL setSelector = NSSelectorFromString(setMethod);
[objectInstance performSelector:setSelector withObject:[dict objectForKey:key]];
(形成するコードsetMethod
は疑似コードであり、Obj-C の文字列操作がひどいため、演習として残します。)
次のようなメソッドを作成しないでください。
setObjectProperties: (id) Object withValues:(NSDictionary *)dict