我想使用“for ... in”循环
将字典中的每个项目分配到我的对象中我有这样的NSDictionary:
{"user_id" : "1", "user_name" : "John"}
我有一个带变量的NSObject:
NSString *user_id;
NSString *user_name
使用for循环,我想在我的NSObject
中分配我的NSDictionary中的每个项目for (NSString *param in userDictionary) {
}
我怎么能这样做?
谢谢,
答案 0 :(得分:14)
看看NSObject类方法:
- (void)setValue:(id)value forKey:(NSString *)key;
例如:
[userDictionary enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop){
[myObject setValue:obj forKey:(NSString *)key];
}];
答案 1 :(得分: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]];