字符串判断是否为空,有两个地方可以添加判空方法, 一个是在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; }