使用字典值动态填充对象属性

jrd*_*oko 5 dictionary initialization properties objective-c populate

在Objective-C中,我有一本字典:

firstName -> John
lastName -> Smith
age -> 34
Run Code Online (Sandbox Code Playgroud)

和一个Person具有相应实例变量和属性的对象(适当地处理内存管理).我想创建一个便利初始化程序,它将字典作为参数,并从字典键/值填充所有对象字段(通过其属性进行内存管理),而不是手动执行以下操作:

obj.firstName = [dict objectForKey:@"firstName"];
obj.lastName = [dict objectForKey:@"lastName"];
obj.age = [dict objectForKey:@"age"];
....
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

Joh*_*eek 20

您可以使用键值编码:

[obj setValuesForKeysWithDictionary:dict];
Run Code Online (Sandbox Code Playgroud)

另请参阅文档-setValuesForKeysWithDictionary:.