gpt4 book ai didi

objective-c - 简单的 bool 测试不起作用

转载 作者:行者123 更新时间:2023-12-03 17:28:05 24 4
gpt4 key购买 nike

嗨,我有一个问题,我想测试我的字符串是否不为空且不等于 string1,我想做一些事情,但它不起作用。

我的代码:

 NSUserDefaults *namePrefs = [NSUserDefaults standardUserDefaults];
NSString *savedName = [namePrefs stringForKey:@"myKey"];

if ((savedName != nil)&&([savedName isEqualToString:@"string1"])){ //

[self myFunction];

}

当savedName为nil时不进入就可以了

当它的值不为nil且不为string1时就进入也可以

但是当savedName是string1时它就进入了,为什么?

感谢您的帮助,再见

最佳答案

你只是漏掉了条件句中的“not”:

(savedName != nil) && ([savedName isEqualToString:@"string1"])

savedNamenil 且等于给定字符串时,这将为真。你想要这个:

(savedName != nil) && (![savedName isEqualToString:@"string1"])

另请注意,您可以删除第一部分,因为发送到 nil 对象的消息会返回 NO:

![nil isEqualToString:@"string1"] ≈ !NO ≈ YES

因此,nil 字符串被认为与 @"string1" 不同。听起来很合乎逻辑。

关于objective-c - 简单的 bool 测试不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5402136/

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