- 遍歷字典里面所有的key
- 例如:key:name
- 就去模型中查找有沒有setName:,直接調(diào)用這個對象setName:賦值
- 假如沒有找到setName:。就會去模型中查找有沒有_name屬性,_name = value
- 假如沒有找到_name,還會去模型中查找name屬性
- 最終沒有找到,就會直接報錯柏肪。
+ (instancetype)flageWithDict:(NSDictionary *)dict
{
//模型
DZFlag *flag = [[self alloc] init];
// 利用KVC字典轉(zhuǎn)模型
// [flag setValuesForKeysWithDictionary:dict];
//遍歷字典的鍵值對
[dict enumerateKeysAndObjectsUsingBlock:^(NSString *key, id obj, BOOL *stop) {
NSString *funcName = [NSString stringWithFormat:@"set%@",key.capitalizedString];
if ([flag respondsToSelector:@selector(funcName)]) {
[flag setValue:obj forKeyPath:key];
}
}];
return flag;
}
- (void)setIcon:(NSString *)icon
{
// NSLog(@"%s",__func__);重寫set方法,返回控制器想要的東西芥牌。
_icon = [UIImage imageNamed:icon];
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者