亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

objective-c - 如何檢測字符串在Obj-C里是否為空?
大家講道理
大家講道理 2017-04-21 11:18:49
0
1
569

如何檢測NSString在Objective-C里是否為空?

原問題:How do I test if a string is empty in Objective C?

大家講道理
大家講道理

光陰似箭催人老,日月如移越少年。

Antworte allen(1)
Peter_Zhu

Marc Charbonneau
可以檢查是否[string length] == 0。這將檢查它是否是一個有效但是為空的字符串(@"")以及其是否為無值。因為調(diào)用無值的length也將返回0。


Matt G
樓上的回答是正確的。但是我想借此機會介紹一下Wil Shipley總結(jié)的isEmpty,他分享在blog上的:

static inline BOOL IsEmpty(id thing) {
return thing == nil
|| ([thing respondsToSelector:@selector(length)]
&& [(NSData *)thing length] == 0)
|| ([thing respondsToSelector:@selector(count)]
&& [(NSArray *)thing count] == 0);
}

第一種方法是有效地,但是如果字符串有空格(@" ")的話就買不起作用了。所以必須在測試前清除空格。
下面的代碼能夠清除字符串兩邊的所有空格

[stringObject stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet] ];

有個不錯的方法是定義一個宏,這樣你就不用輸入這一長串代碼了:

#define allTrim( object ) [object stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet] ]

現(xiàn)在你可以使用:

NSString *emptyString = @"   ";
if ( [allTrim( emptyString ) length] == 0 ) NSLog(@"Is empty!");

Rob
我見過的最好的解決方法之一(比Matt G的更好)這種改進的內(nèi)聯(lián)函數(shù),我在Git Hub報告里找到的:

// Check if the "thing" pass'd is empty
static inline BOOL isEmpty(id thing) {
    return thing == nil
    || [thing isKindOfClass:[NSNull class]]
    || ([thing respondsToSelector:@selector(length)]
        && [(NSData *)thing length] == 0)
    || ([thing respondsToSelector:@selector(count)]
        && [(NSArray *)thing count] == 0);
}

user238824
你最好使用這個函數(shù):

@implementation NSString (Empty)

    - (BOOL) empty{
        return ([[self stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]length] == 0);
    }

@end

chown
另一個選擇是使用isEqualToString檢查是否等于@"",就像這樣:

if ([myString isEqualToString:@""]) {
    NSLog(@"myString IS empty!");
} else {
    NSLog(@"myString IS NOT empty, it is: %@", myString);
}

Jim Thio
我用的這個:

@implementation NSObject (AdditionalMethod)
-(BOOL) isNotEmpty
{
    return !(self == nil
    || [self isKindOfClass:[NSNull class]]
    || ([self respondsToSelector:@selector(length)]
        && [(NSData *)self length] == 0)
    || ([self respondsToSelector:@selector(count)]
        && [(NSArray *)self count] == 0));

};
@end 

問題是如果self無值, 這個功能就永遠不會被調(diào)用。它將返回false,這是所需的。


Samir Jwarchan
使用下面的if else條件之一就可以:
方法1:

<strong>if([yourString isEqualToString:@""]){
        // yourString is empty.
    }
    else {
        // yourString has some text on it.
    } </strong>

方法 2:

if([yourString length] == 0){
    // Empty yourString
}
else {
    // yourString is not empty
}
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage