//判断是否是字符串 并且字符串不为空 存在的情况 返回的是bool类型的
BOOL MBIsStringWithAnyText(id object) {
return [object isKindOfClass:[NSString class]] && [(NSString*)object length] > 0;
}
if (MBIsStringWithAnyText([YFMapMessage sharedInstance].cityId)) {
return YES;
}
else
{
[self showHud:@"请等待,正在定位中..."];
return NO;
}
NSString* MBNonEmptyString(id obj){
if (obj == nil || obj == [NSNull null] ||
([obj isKindOfClass:[NSString class]] && [obj length] == 0)) {
return @""; //返回一个空的字符串
} else if ([obj isKindOfClass:[NSNumber class]]) { // NSNumber类型的 直接转成字符串 不用想那么多
return MBNonEmptyString([obj stringValue]);
}
return obj; //正常的字符串直接返回
}
例如:
- (void)requestUserLogin:(NSString *)mobileNum
{
NSDictionary *para = @{@"application":@"UserLogin.Req",
@"loginName":MBNonEmptyString(mobileNum), //假如为空就崩溃
@"password":MBNonEmptyString(_getOutput1),
@"pushToken":MBNonEmptyString([USER_DEFAULT objectForKey:knewDeviceToken]),
@"sourceType":@"1",
@"deviceFinger":strFinger
};
[[YFRequest sharedInstance] requestWithDictionary:para completion:^(BOOL success, id responseData) {
if (success) {
if (responseData) {
DLog(@"UserLogin.Req = %@",responseData);
[USER_DEFAULT setObject:mobileNum forKey:kUserName];
[USER_DEFAULT setObject:responseData[@"userId"] forKey:kUserId];
[USER_DEFAULT setObject:responseData[@"mobileNum"] forKey:kMobileNum];
[USER_DEFAULT setObject:responseData[@"msgExt"] forKey:kAuthenState];
[USER_DEFAULT setObject:nil forKey:kFuKaCardNumArray];
[USER_DEFAULT setBool:YES forKey:kIsLogin];
[[NSNotificationCenter defaultCenter] postNotificationName:kNotificationLoginSuccess object:nil];
[[NSUserDefaults standardUserDefaults] setInteger:1000 forKey:@"time"];
[[NSUserDefaults standardUserDefaults] 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{
//
// }
}
}];