MVVM初识

来源:互联网 发布:网络舆情汇报 编辑:程序博客网 时间:2024/05/01 02:11

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) {    }];}
0 0
原创粉丝点击