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

原创
2017/11/02 23:32
阅读数 185

关于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]];
		}
	}
展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部