關於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]];
		}
	}
相關文章
相關標籤/搜索