gpt4 book ai didi

cocoa - NSString 对象比较 nil

转载 作者:行者123 更新时间:2023-12-03 17:53:15 26 4
gpt4 key购买 nike

所以我有 NSString 对象,我这样声明:

NSString *XMLOut;

现在这个对象可以为空或非空。

我怎样才能看到它?

If ([XMLOut isEqual:nil]) {
NSLog(@"XMLOut is empty");
} else {
NSLog(@"XMLOut is not empty");
}

正确吗?

最佳答案

Now this object can be empty or non empty.

空与 nil 不同。 .

空字符串仍然是字符串。它有一个length (零),您可以向其附加其他字符串,将其包含在要由某些字符连接的字符串中,等等。

nil没有对象。那里没有绳子。那里什么也没有。它没有长度,也没有任何其他属性。

那么,您的意思是“我想比较我的字符串,它可能是nil” ,判断是否为nil ”,或者“我想比较我的字符串,它可能是空的,以确定它是否为空”?

测试是否为nil

isEqual: 的文档方法说:

  • anObject: The object to be compared to the receiver. May be nil, in which case this method returns NO.

所以,如果 XMLOut不是nil , [XMLOut isEqual:nil]保证返回NO .

但是如果不是nil怎么办? ?

消息给nil基本上返回每种零(结构体等除外),其中包括 NO .

这意味着 [XMLOut isEqual:nil]永远NO :

  • 如果XMLOutnil ,答案始终是 NO不管什么问题。
  • 如果XMLOut不是nil ,答案是NO因为没有字符串等于 nil .

使用==改为运算符。 XMLOut == nil将正确测试 XMLOut 是否是 nil .

测试是否为空

正如 mah 在他们的评论中告诉你的那样,询问字符串的 length .

  • 如果XMLOutnil ,无论什么问题,答案总是零。
  • 如果XMLOut是一个空字符串,其长度为零。
  • 如果XMLOut是任何其他字符串,其长度大于零。

关于cocoa - NSString 对象比较 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19196878/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com