0

我想知道是否可以在不单独设置每个属性的情况下设置NSObjectfrom an的属性。NSDictionary

中的属性名称NSObjectNSDictionary.

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

4

2 回答 2

4

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

于 2013-07-26T16:45:54.560 回答
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]];
于 2013-08-30T01:34:20.307 回答