天天看点

判断String是否为空

字符串判断是否为空,有两个地方可以添加判空方法, 一个是在Tools工具中添加方法,另一个是在 NSString的分类中添加判断方法,经实际验证应改放在 Tools工具中. 如果放在 NSString的分类中,则当 某个string本身为nil时,即 : NSString *testStr = (NSString *) nil, 时 分类中的 self则会指向另一个未知但不为空的字符串,此时,代码本应为 空 但判断结果可能为 非空.

放在Tools中的代码如下:

// 判断字符串是否为空

+ (BOOL)isNill:(NSString *)aString {

    if (!aString) {

        return YES;

    }

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

        return YES;

    }

    if (aString == nil || aString == NULL) {

        return YES;

    }

    if ([[aString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] length]==0) {

        return YES;

    }

    if ([aString isEqualToString:@"(\n)"]) {

        return YES;

    }

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

        return YES;

    }

    if ([aString isEqualToString:@"(null)"]) {

        return YES;

    }

    if ([aString isEqualToString:@"<null>"]) {

        return YES;

    }

    return NO;

}

如果要放在NSString分类中,代码如下:

- (BOOL)isNill {

    if (self == nil || self == NULL) {

        return YES;

    }

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

        return YES;

    }

    if ([[self stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] length]==0) {

        return YES;

    }

    if ([self isEqualToString:@"(\n)"]) {

        return YES;

    }

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

        return YES;

    }

    if ([self isEqualToString:@"(null)"]) {

        return YES;

    }

    if ([self isEqualToString:@"<null>"]) {

        return YES;

    }

    return NO;

}