ios 中的非空判断

作者: 无邪8 | 来源:发表于2017-12-12 11:11 被阅读55次

    程序员在开发过程中经常需要判断字符串(一般为UITextField、UITextView之类和接收后台返回的json字符串)是否为空。

    很多人会直接if([yourTextField.textisEqualToString:@""] || yourTextField.text== nil])

    这样进行字符串的判断,然而很遗憾,这样的判断往往经常会出现失败的情况,造成很多莫名其妙的bug。

    所以我一般都将非空判断放到自己建的工具类中,调用工具类中方法实现判断。

    字符串的非空判断

    在.h中声明


    /**

    *  判断字符串是否为空

    *

    *  @param string 传入要判断的字符串

    *

    *  @return 返回的bool值为YES则为空

    */


    + (BOOL)isBlankString:(id)string;

    在.m中实现

    + (BOOL)isBlankString:(id)string1{

     if ([string1 isKindOfClass:[NSNull class]]) { 

     return YES; 

     } 

     NSString * string = [NSString stringWithFormat:@"%@",string1];

     return  string == nil || string==(id)[NSNull null] || [string isEqualToString: @""] || string.length == 0||[[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] length]==0 || [string isEqualToString:@"(null)" ] || [string isEqualToString:@"null"]||[string isEqualToString:@""];

    }


    这样就可以在项目中任何地方调用。类似于

    if ([UtilTools isBlankString:_phoneNumTF.text])

    {

    [MessageAlertView showErrorMessage:@"手机号码不能为空"];

    }else if ([UtilTools isBlankString:_VerifyTF.text])

    {

    [MessageAlertView showErrorMessage:@"请输入验证码"];

    }


    数组的非空判断

    /**

    *  判断数组是否为空

    *

    *  @param array 传入要判断的数组

    *

    *  @return 返回的bool值为YES则为空

    */

    + (BOOL)isBlankArray:(NSArray *)array;

    + (BOOL)isBlankArray:(NSArray *)array

    {

    if (array == NULL || array == nil || [array isKindOfClass:[NSNull class]] || array.count == 0)

    {

    return YES;

    }

    return NO;

    }


    字典的非空判断

    /**

    *  判断字典是否为空

    *

    *  @param array 传入要判断的字典

    *

    *  @return 返回的bool值为YES则为空

    */

    +(BOOL)isBlankDictionary:(NSDictionary *)dictionary;

    +(BOOL)isBlankDictionary:(NSDictionary *)dictionary

    {

    if (dictionary == nil || [dictionary isKindOfClass:[NSNull class]] || dictionary.count == 0)

    {

    return YES;

    }

    return NO;

    }


    对象的非空判断

    /**

    *  判断对象是否为空

    *  PS:nil、NSNil、@""、@0 以上4种返回YES

    *

    *  @return YES 为空  NO 为实例对象

    */

    + (BOOL)dx_isNullOrNilWithObject:(id)object;

    + (BOOL)dx_isNullOrNilWithObject:(id)object;

    {

    if (object == nil || [object isEqual:[NSNull null]]) {

    return YES;

    } else if ([object isKindOfClass:[NSString class]]) {

    if ([object isEqualToString:@""]) {

    return YES;

    } else {

    return NO;

    }

    } else if ([object isKindOfClass:[NSNumber class]]) {

    if ([object isEqualToNumber:@0]) {

    return YES;

    } else {

    return NO;

    }

    }

    return NO;

    }


    相关文章

      网友评论

        本文标题:ios 中的非空判断

        本文链接:https://www.haomeiwen.com/subject/anxwixtx.html