用于字典转模型

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

-(id)initWithDic:(NSDictionary*)dic
{
    self=[super init];
    if (self)
    {
        /**
         *第一步,从字典中取得数组所有的key值
         */
        NSArray* allKey=[dic allKeys];
        
        for (NSString* key in allKey)
        {
            /**
             *第二步,将传进来的key分割,第一个key的首字母大写,其余小写
             */
            NSString* firstWord=[[key substringToIndex:1] uppercaseString];
            NSString* otherWord=[key substringFromIndex:1];
            
            NSString* setterStr=nil;
            
            /**
             *第三步,判断该key是否是oc的关键字id,是的话,转换成set+类名+key的形式
             */
            if ([key isEqualToString:@"id"])
            {
                setterStr=[NSString stringWithFormat:@"set%@%@%@:",NSStringFromClass([self class]),firstWord,otherWord];
            }
            else
            {
                setterStr = [NSString stringWithFormat:@"set%@%@:", firstWord, otherWord];
            }
            
            /**
             *第四步 动态加载实例方法
             */
            SEL method=NSSelectorFromString(setterStr);

            NSString* value=dic[key];
            
                if ([self respondsToSelector:method])
                {
                    [self performSelector:method withObject:value afterDelay:0.0f];
                }
        }
    }
    return self;
}