做项目经常用来判断字符串的状态

来源:互联网 发布:针织毛线衣品牌知乎 编辑:程序博客网 时间:2024/06/05 12:43


//判断是否是字符串 并且字符串不为空 存在的情况  返回的是bool类型的

BOOL MBIsStringWithAnyText(id object) {

    return [objectisKindOfClass:[NSStringclass]] && [(NSString*)objectlength] > 0;

}



比如 :

 if (MBIsStringWithAnyText([YFMapMessagesharedInstance].cityId)) {

                returnYES;

            }

            else

            {

                [selfshowHud:@"请等待,正在定位中..."];

                returnNO;

            }




// 需要返回一个值  一般用于上送给服务器参数,有的是字符串,如果为空的话 会导致崩溃,    

NSString* MBNonEmptyString(id obj){

    if (obj ==nil || obj == [NSNullnull] ||

        ([obj isKindOfClass:[NSStringclass]] && [obj length] ==0)) {

        return@"";     //返回一个空的字符串   

    } elseif ([obj isKindOfClass:[NSNumberclass]]) {    //  NSNumber类型的   直接转成字符串  不用想那么多

        returnMBNonEmptyString([obj stringValue]);

    }

    return obj;   //正常的字符串直接返回

}


例如:

- (void)requestUserLogin:(NSString *)mobileNum

{

    NSDictionary *para =@{@"application":@"UserLogin.Req",

                           @"loginName":MBNonEmptyString(mobileNum),   //假如为空就崩溃

                           @"password":MBNonEmptyString(_getOutput1),

                           @"pushToken":MBNonEmptyString([USER_DEFAULTobjectForKey:knewDeviceToken]),

                           @"sourceType":@"1",

                           

                           @"deviceFinger":strFinger

                           };

    

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

        if (success) {

            if (responseData) {

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

                

                [USER_DEFAULTsetObject:mobileNum forKey:kUserName];

                [USER_DEFAULTsetObject:responseData[@"userId"]forKey:kUserId];

                [USER_DEFAULTsetObject:responseData[@"mobileNum"]forKey:kMobileNum];

                [USER_DEFAULTsetObject:responseData[@"msgExt"]forKey:kAuthenState];

                

                [USER_DEFAULTsetObject:nilforKey:kFuKaCardNumArray];

                

                [USER_DEFAULTsetBool:YESforKey:kIsLogin];

                [[NSNotificationCenterdefaultCenter] postNotificationName:kNotificationLoginSuccessobject:nil];

                

                [[NSUserDefaultsstandardUserDefaults] setInteger:1000forKey:@"time"];

                [[NSUserDefaultsstandardUserDefaults] synchronize];

                

                


            }

        }else{

            //登录失败

//            if ([USER_DEFAULT boolForKey:kIsFreezeAccount]) {

//                [USER_DEFAULT setObject:mobileNum forKey:kMobileNum];

//                UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:@"您的账号已被锁定" delegate:self cancelButtonTitle:nil otherButtonTitles:@"确定", nil];

//                [alert show];

//            }else{

//                

//            }

        }

    }];





0 0
原创粉丝点击