关于NSString判空与移除字符串首尾空白方法的设计

关于NSString判空与移除字符串首尾空白方法的设计

背景

时常会遇到NSString实例对象须要判空以及删除首尾空白字符的需求。
发现许多工程师因不恰当的处理以上两种需求,引起了APP崩溃问题。
缘由可能来源以下:
1. 不太理解,什么叫空字符串。
2. 不恰当的删除字符串首尾空白。
3. 不恰当的返回删除字符串首尾空白以后的值。

判空设计

什么是空字符串?
内容为空的字符串即length==0的字符串或者任何其余非NSString类型的变量。
考虑到,对nil发送消息将不会有任何响应,返回值仍然为0((id)0)。
所以,从以上方面来看NSString Category应该添加以下这样的判空方法。
+(BOOL)isEmptyString:(NSString *)string{
	if(string &&
   	[string isKindOfClass:[NSString class]] &&
   	string.length>0){

    		return NO;
    		
   }else{
    	
    		return YES;
    	}
	}

删除字符串首尾空白设计

不恰当的删除字符串首尾空白。
不恰当的返回删除字符串首尾空白以后的值。
所以,从以上方面来看NSString Category应该添加以下方法。
+(NSString *)stringByTrimmingBothEndWhiteSpace:(NSString *)string{
	if([NSString isEmptyString:string]){
	//最好不要使用nil,由于这改变了类型,会引发bug。
	//此处采用NSString初始化返回值(一个空字符串),至关于类型转换(将可能的任何其余类型转换为字符串类型)。
		return [[NSString alloc] init];
    
   }else{
   
   	return [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
		}
	}
相关文章
相关标签/搜索