Cocoa touch 根据NSDictionary中的值设置NSObject的属性

Cocoa touch 根据NSDictionary中的值设置NSObject的属性,cocoa-touch,nsdictionary,declared-property,Cocoa Touch,Nsdictionary,Declared Property,我想知道是否可以从NSDictionary设置NSObject的属性,而无需单独设置每个属性 NSObject中的属性名称与NSDictionary中的键名称匹配 有没有一个简单的方法可以做到这一点 假设值的类型匹配,您希望使用-(void)setValuesForKeysWithDictionary:(NSDictionary*)keyedValues NSNull值将被视为nil。假设值的类型匹配,您希望使用-(void)setValuesForKeysWithDictionary:(NSD

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

NSObject
中的属性名称与
NSDictionary
中的键名称匹配


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

假设值的类型匹配,您希望使用
-(void)setValuesForKeysWithDictionary:(NSDictionary*)keyedValues

NSNull值将被视为nil。

假设值的类型匹配,您希望使用
-(void)setValuesForKeysWithDictionary:(NSDictionary*)keyedValues

NSNull值将被视为nil。

我编写了一个小型库来自动执行此操作,它还处理日期转换

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

Customer *customer = [Customer objectFromDictionary:customerDictionary];
NSArray *customers = [Customer objectFromDictionary:listOfCustomersDictionary];
如果键和属性名称不相同,则可以编写映射

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

我写了一个小型的库,它可以自动完成这项工作,还可以处理日期的转换

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

Customer *customer = [Customer objectFromDictionary:customerDictionary];
NSArray *customers = [Customer objectFromDictionary:listOfCustomersDictionary];
如果键和属性名称不相同,则可以编写映射

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

可能的重复,可能的重复,可能的重复,可能的重复,可能的重复,可能的重复,可能的重复,可能的重复,可能的重复,可能的重复,可能的重复,可能的重复,可能的重复,可能的重复,可能的重复,可能的重复,可能的重复,可能的重复,可能的重复,可能的重复,可能的重复,可能的重复,可能的重复,可能的重复,可能的重复,可能的重复,可能的重复,可能的重复。