Iphone 如何测试NSString是否为零?

Iphone 如何测试NSString是否为零?,iphone,objective-c,string,null,Iphone,Objective C,String,Null,我可以简单地使用吗 if(myString == nil) 由于某种原因,我知道的一个字符串为null,它使该语句失败。您的字符串是否可能不是事实上的nil,而是一个空字符串?您可以尝试测试[myString length]==0调试器中的字符串似乎报告为(null),但这是由于它的分配方式,我修复了它,现在它报告为nil。这解决了我的问题 谢谢 注意长度=0并不意味着它是零 NSString *test1 = @""; NSString *test2 = nil; 它们不一样。虽然两个长度

我可以简单地使用吗

if(myString == nil)

由于某种原因,我知道的一个字符串为null,它使该语句失败。

您的字符串是否可能不是事实上的
nil
,而是一个空字符串?您可以尝试测试
[myString length]==0

调试器中的字符串似乎报告为(null),但这是由于它的分配方式,我修复了它,现在它报告为nil。这解决了我的问题


谢谢

注意长度=0并不意味着它是零

NSString *test1 = @"";
NSString *test2 = nil;
它们不一样。虽然两个长度都是0。

您可以找到


您可以使用此选项检查获取字符串

   if(myString==(id) [NSNull null] || [myString length]==0 || [myString isEqualToString:@""])
    {
     //String is null or bad response
    }

我今天遇到了这个问题。尽管将字符串指定为nil:
NSString*str=nil
,如果(str==nil)测试返回
FALSE
!但是,如果(!str)有效,则将测试更改为

您可以使用以下命令隐式检查
nil
(已分配,但未初始化):

if (!myString) { 
    //do something
}
如果
myString
是从字典或数组分配的,您也可以像这样检查
NSNULL

if ([myString isEqual:[NSNull null]]) {
    //do something
}
最后(如Sophie Alpert所述),您可以检查空字符串(空值):

通常,您可能需要合并表达式:

if (!myString || [myString length] == 0) {
    //do something
}

检查NSAttribute字符串是否为空:

let isEmpty = atrributedString.string.isEmpty

这就是为什么,如果没有代码的其余部分,我什么都不知道为什么这还没有被选为答案!
if (!myString || [myString length] == 0) {
    //do something
}
let isEmpty = atrributedString.string.isEmpty