如何在Objective-C中测试NSString是否为空?


当前回答

斯威夫特版本

即使这是一个Objective C问题,我需要在Swift中使用NSString,所以我也会在这里包括一个答案。

let myNSString: NSString = ""

if myNSString.length == 0 {
    print("String is empty.")
}

或者NSString是可选的:

var myOptionalNSString: NSString? = nil

if myOptionalNSString == nil || myOptionalNSString!.length == 0 {
    print("String is empty.")
}

// or alternatively...
if let myString = myOptionalNSString {
    if myString.length != 0 {
        print("String is not empty.")
    }
}

正常的Swift String版本是

let myString: String = ""

if myString.isEmpty {
    print("String is empty.")
}

请参见:检查Swift中的空字符串?

其他回答

我检查了一个空字符串使用以下代码:

//Check if we have any search terms in the search dictionary.
if( (strMyString.text==(id) [NSNull null] || [strMyString.text length]==0 
       || strMyString.text isEqual:@"")) {

   [AlertView showAlert:@"Please enter a valid string"];  
}

你可以检查[string length] == 0。这将检查它是否是一个有效的空字符串(@"")以及它是否为nil,因为在nil上调用length也将返回0。

斯威夫特版本

即使这是一个Objective C问题,我需要在Swift中使用NSString,所以我也会在这里包括一个答案。

let myNSString: NSString = ""

if myNSString.length == 0 {
    print("String is empty.")
}

或者NSString是可选的:

var myOptionalNSString: NSString? = nil

if myOptionalNSString == nil || myOptionalNSString!.length == 0 {
    print("String is empty.")
}

// or alternatively...
if let myString = myOptionalNSString {
    if myString.length != 0 {
        print("String is not empty.")
    }
}

正常的Swift String版本是

let myString: String = ""

if myString.isEmpty {
    print("String is empty.")
}

请参见:检查Swift中的空字符串?

if( [txtMobile.text length] == 0 )
{
    [Utility showAlertWithTitleAndMessage: AMLocalizedString(@"Invalid Mobile No",nil) message: AMLocalizedString(@"Enter valid Mobile Number",nil)];
}

这对我来说是一种魅力

如果NSString是s

if ([s isKindOfClass:[NSNull class]] || s == nil || [s isEqualToString:@""]) {

    NSLog(@"s is empty");

} else {

    NSLog(@"s containing %@", s);

}