我想知道是否可以从NSObject
设置NSDictionary
的属性,而无需单独设置每个NSObject
。
NSDictionary
中的媒体资源名称与{{1}}中的密钥名称相匹配。
有没有一种简单的方法可以做到这一点?
答案 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]];