编码循环方面的细节错误

比如:


为什么会出现这个警告? 导致的是永远匹配不出来,到 

_userInfo.address = cell02.mTextField.text;

    _userInfo.provinceId = [selftransformProvince:_province];

这里   [self transformProvince:_province];  返回的始终都是空 或者一个;


原因是:



直接就返回了,返回值 在外面写个变量 接受一下,for 循环没错  但你不该在for里面写return,如果第一次不满足  一下子就结束了  逻辑也是问题!!!



改法是 

- (NSString *)transformProvince:(NSString *)province

{

    NSString *strP=nil;

    for (int i=0; i<_privinceArray.count; i++) {

        if ([provinceisEqualToString:[_privinceArrayobjectAtIndex:i]]) {

            strP= _privinceId[i];

        }

    }

    return strP;

}





后来又遇到一个问题,拿到了 [self transformProvince:_province]返回的值,但是 _userInfo.provinceId  还是空的,值还是没有存进model里面,

    _userInfo.provinceId = [selftransformProvince:_province];


那就是 :

-(void)requsetGetUserInfo:(NSString *)mobileNum completion:(void(^)(BOOL success))completion

{

    NSMutableDictionary *para = [[NSMutableDictionaryalloc] initWithDictionary:

                                 @{@"application":@"GetUserInfo.Req",

                                    @"Phone":mobileNum

                                   }];

    

    [[YFRequestsharedInstance] requestWithDictionary:paracompletion:^(BOOL success,id responseData) {

        if (success) {

            //第二次可以查到个人信息

            DLog(@"GetUserInfo.Req = %@",responseData);

            

            NSDictionary *dic = responseData[@"data"];

            

              _userInfo = [[YFUserInfoModelalloc] init];

            _userInfo.companyName = dic[@"companyName"];

            _userInfo.realName = dic[@"realName"];

            _userInfo.mobile = dic[@"mobile"];

            _userInfo.identityNo = dic[@"identityNo"];

            _userInfo.address = dic[@"address"];

            _userInfo.phone = dic[@"phone"];

            _userInfo.isExistMember = [dic[@"isExistMember"]boolValue];

            

            if (_userInfo.isExistMember) {

                [_dataArrayremoveObjectAtIndex:0];

                [_dataArrayinsertObject:[NSArrayarrayWithObjects:@"手机号码",@"验证码",nil] atIndex:0];

                [self.mTableViewreloadData];

                [self.viewendEditing:YES];

                

                completion(YES);

            }else{

                [self.mTableViewreloadData];

                [self.viewendEditing:YES];


                completion(NO);

            }

        }

    }];

}



如果是接口没有请求成功  将永远不执行success括号里面的代码,也就是               _userInfo = [[YFUserInfoModel allocinit];  没法构造;


正确的改法是 将                _userInfo = [[YFUserInfoModel allocinit];  移到didiLoad里面创建,或者是移到请求参数上面, 不管接口请求成功与否,用户的YFUserInfoModel

保证是存在的,以免赋值的时候,总是拿不到。


多么痛苦的领悟!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值