Cocoa NSString对象比较零
所以我有一个NSString对象,我声明为: NSString*XMLOut 现在这个对象可以是空的,也可以是非空的 我怎么能看到它Cocoa NSString对象比较零,cocoa,object-code,Cocoa,Object Code,所以我有一个NSString对象,我声明为: NSString*XMLOut 现在这个对象可以是空的,也可以是非空的 我怎么能看到它 If ([XMLOut isEqual:nil]) { NSLog(@"XMLOut is empty"); } else { NSLog(@"XMLOut is not empty"); } 对吗 现在这个对象可以是空的,也可以是非空的 空与nil不是一回事 空字符串仍然是字符串。它有一个长度(零),您可以将其他字符串附加到它,将其包含在字
If ([XMLOut isEqual:nil]) {
NSLog(@"XMLOut is empty");
} else {
NSLog(@"XMLOut is not empty");
}
对吗
现在这个对象可以是空的,也可以是非空的
空与nil
不是一回事
空字符串仍然是字符串。它有一个长度
(零),您可以将其他字符串附加到它,将其包含在字符串中,以便由某些字符连接,等等
nil
不是对象。那里没有绳子。那里什么都没有。它没有长度,也没有任何其他属性
那么,您的意思是“我想比较我的字符串,它可能是nil
,以确定它是否是nil
”,还是“我想比较我的字符串,它可能是空的,以确定它是否是空的”
测试是否为nil
isEqual:
方法的文档说明:
:要与接收器进行比较的对象。可能是anObject
,在这种情况下,此方法返回nil
NO
XMLOut
不是nil
,[XMLOut isEqual:nil]
保证返回NO
但是如果它不是nil
发送到nil
的消息基本上返回各种类型的零(结构等除外),其中包括NO
这意味着[XMLOut isEqual:nil]
将始终是否
:
- 如果
为XMLOut
,则无论问题是什么,答案总是nil
NO
- 如果
不是XMLOut
,则答案是nil
,因为没有字符串等于NO
nil
=
运算符XMLOut==nil
将正确测试XMLOut
是否为nil
测试它是否为空
正如mah在他们的评论中已经告诉您的,询问字符串的长度
- 如果
为XMLOut
,则无论问题是什么,答案始终为零nil
- 如果
是空字符串,则其长度为零XMLOut
- 如果
是任何其他字符串,则其长度大于零XMLOut
代码>好的,我使用此代码进行此测试:If([XMLOut length]==0){NSLog(@“XMLOut为空);)