是否可以将NSDictionary强制转换为具有匹配属性的对象?

Dav*_*veB 2 cocoa casting objective-c nsdictionary

是否可以转换NSDictionary为具有匹配属性的对象?例如,说我有一个NSDictionary:

@{@"custId" :  @(101)
  @"custName" : @"Joe"
  @"custAddress" : @"1 Main St"}
Run Code Online (Sandbox Code Playgroud)

如果我有一个CustModel使用属性定义的类custId,custName并且custAddress有没有办法将它们从中抛出NSDictionary,或者我是否需要将每个属性单独移动到一个CustModel对象?

Wai*_*ain 8

你不能只是转换对象,但你可以使用KVC并调用setValuesForKeysWithDictionary:对象(你必须实例化它)并提供字典,它将为你完成所有的工作.


对于您的其他问题,有2个选项:

  1. 实现setValue:forUndefinedKey:忽略或映射
  2. 修剪字典以删除无效密钥