setValuesForKeysWithDictionary方法的正确使用姿势

1.为什么用

之前给model赋值的时候,一个一个往上写,写的贼tm烦,所以一直想找一个简单方便的方法。。。来张图感受下。就是这么蛋疼

2.怎么用

用这个之前我是知道有这么一个方法能快捷的赋值的,但是为什么没用呢?因为它搞不好就崩。使用方法很简单:
    Model *item = [[Model alloc]init];
    [item setValuesForKeysWithDictionary:dic];

其中字典的key值需要和model的属性一一对应,完全相同。

需要注意的是崩也是有原因的,基本上是因为字典中的key值在model中没有发现对应得属性。但是反过来,model中有多余的属性时,不会崩溃。
其次需要注意的是,当字典中的key值有oc关键字时,model对应属性不能写成关键字,如id等,那么应该怎么做呢。
答:实现下面的方法:
-(void)setValue:(id)value forUndefinedKey:(NSString *)key;

类似这样:

-(void)setValue:(id)value forUndefinedKey:(NSString *)key{
    if ([key isEqualToString:@"id"]) {
        self.wbid = value;
        //wbid是替代的id属性
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值