将实例变量初始化为NSDictionary的键/值对?

emd*_*og4 3 initialization objective-c nsdictionary nsobject kvc

我将我的NSObject子类的公共接口定义为,

@interface MyObject : NSObject
{
    NSString *_key1;
    NSString *_key2;
    NSString *_key3;
}
- (id)initWithDict:(NSDictionary *)dict;
@end
Run Code Online (Sandbox Code Playgroud)

是否有技巧来实现initWithDict:方法,以便我可以传递定义为的NSDictionary

{"key1":"value1","key2":"value2","key3":"value3"}

并且init方法可以设置相关的实例变量及其对应的"值"?

Dru*_*erB 15

你必须使用KVC.

NSDictionary *dict = @{@"key1" : @"value1", @"key2" : @"value2", @"key3" : @"value3"};
for (NSString *key in [dict allKeys]) {
   [self setValue:dict[key] forKey:key];
}
Run Code Online (Sandbox Code Playgroud)