从NSDictionary中的值设置NSObject的属性

时间:2013-07-26 16:42:31

标签: cocoa-touch nsdictionary declared-property

我想知道是否可以从NSObject设置NSDictionary的属性,而无需单独设置每个NSObject

NSDictionary中的媒体资源名称与{{1}}中的密钥名称相匹配。

有没有一种简单的方法可以做到这一点?

2 个答案:

答案 0 :(得分:4)

假设值的类型匹配,您希望使用- (void)setValuesForKeysWithDictionary:(NSDictionary *)keyedValues NSNull值将被视为nil。

答案 1 :(得分:1)

我写了一个自动执行此操作的小型库,它还处理日期转换 https://github.com/aryaxt/OCMapper

只要所有键与属性名称相同,它就会自动将NSDictionary转换为NSObject。

Customer *customer = [Customer objectFromDictionary:customerDictionary];
NSArray *customers = [Customer objectFromDictionary:listOfCustomersDictionary];

如果键和属性名称不相同,则可以编写映射

[mappingProvider mapFromDictionaryKey:@"dob" toPropertyKey:@"dateOfBearth" forClass:[Customer class]];