如何測試Objective-C中的NSString
是否爲空? 測試
不管如何,最好的方法是檢查給定字符串的長度。若是您的字符串是myString,則代碼爲: spa
int len = [myString length]; if(len == 0){ NSLog(@"String is empty"); } else{ NSLog(@"String is : %@", myString); }
只需使用if
else
條件之一,以下所示: code
方法1: 字符串
if ([yourString isEqualToString:@""]) { // yourString is empty. } else { // yourString has some text on it. }
方法2: string
if ([yourString length] == 0) { // Empty yourString } else { // yourString is not empty }
很是有用的文章,添加了NSDictionary支持以及一個小的更改 it
static inline BOOL isEmpty(id thing) { return thing == nil || [thing isKindOfClass:[NSNull class]] || ([thing respondsToSelector:@selector(length)] && ![thing respondsToSelector:@selector(count)] && [(NSData *)thing length] == 0) || ([thing respondsToSelector:@selector(count)] && [thing count] == 0); }
第一種方法是有效的,可是若是您的字符串具備空格( @" "
),則該方法無效。 所以,您必須在測試以前清除此空白。 io
這段代碼清除了字符串兩側的全部空格: class
[stringObject stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet] ];
一個好主意是建立一個宏,所以您沒必要鍵入如下怪物行: object
#define allTrim( object ) [object stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet] ]
如今您能夠使用: select
NSString *emptyString = @" "; if ( [allTrim( emptyString ) length] == 0 ) NSLog(@"Is empty!");
這對我來講是魅力
若是NSString
是s
if ([s isKindOfClass:[NSNull class]] || s == nil || [s isEqualToString:@""]) { NSLog(@"s is empty"); } else { NSLog(@"s containing %@", s); }