MVVM初识

1.ViewModel

//处理网络获取的数据
- (void)handleDataWith:(NSMutableDictionary *)dict
               Success:(void (^)(NSArray *arr))success
                      failure:(void(^)(NSError *error))failure;



//处理网络获取的数据
- (void)handleDataWith:(NSMutableDictionary *)dict
               Success:(void (^)(NSArray *arr))success
               failure:(void(^)(NSError *error))failure{
[CSHttpRequest getAFN:@"/index.php?g=api&m=children&a=childrenById" parma:dict callback:^(id backdic) {
    NSLog(@"%@",backdic);
    NSArray *temp = backdic[@"data"];
    NSMutableArray *tmpArr=[NSMutableArray array];
    for (NSDictionary *tempDic in temp) {
        BabyInfoModel *model = [BabyInfoModel getInfoWithDict:tempDic];
        [tmpArr addObject:model];
    }
     success(tmpArr);

} errorCallBack:^(NSDictionary *errodic) {

}];
}

2.Model
model不处理任何逻辑

3.view
view层根据model进行赋值

#pragma mark - setData
- (void)setData:(BabyInfoModel *)data{
    if (data) {
        NSLog(@"%@",data);
        _data=data;
     //NSLog(@"%@",data.token);
        [self loadViewData];
    }
}
- (void)loadViewData{
    //头像
        [self.icon sd_setImageWithURL:[NSURL URLWithString:_data.avatar] placeholderImage:[UIImage imageNamed:@"背景1242"]];
    //姓名
        [self.name setText:_data.name];
    //班级
        [self.detailClass setText:_data.grade];

    // 地址
       [self.address setText:_data.school];

       self.defaul.hidden = [_data.is_default isEqualToString:@"0"] ? YES:NO;
}

4.VC

- (void)requestBabyInfo{
    NSMutableDictionary *dict = [NSMutableDictionary dictionary];
    dict[@"uid"] =@([UserTool userInfo].mId);
    dict[@"is_default"] = @1;
    BabyInfoViewModel *babyInfo = [[BabyInfoViewModel alloc] init]; 
    (这里写成单例或者类方法会比较好点)
    WS(weakself);
    [babyInfo handleDataWith:dict Success:^(NSArray *arr) {

        MYLog(@"%@",arr.description);
        [weakself.dataArr removeAllObjects];
        [weakself.dataArr addObjectsFromArray:arr];
        if(weakself.dataArr.count != 0){

            dispatch_async(dispatch_get_main_queue(), ^{
                BabyInfoModel *model = weakself.dataArr[0];
                weakself.babyName = model.name;
                weakself.accept_addr = model.address;

                double lat = [model.school_lat doubleValue];
                double lng = [model.school_lng doubleValue];
                CLLocationCoordinate2D receive = CLLocationCoordinate2DMake(lat, lng);
                MYLog(@"%f",lat);
                weakself.receive = receive;
                weakself.babyId = model.babyId;
                weakself.accept_addr = [NSString stringWithFormat:@"%@",model.address];
                [weakself.tableView reloadData];
            });

        }
    } failure:^(NSError *error) {

    }];

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值