gpt4 book ai didi

Objective-C "if not equal or"语句不起作用

转载 作者:行者123 更新时间:2023-12-03 06:14:18 25 4
gpt4 key购买 nike

我对 Objective-C 还比较陌生。

我正在尝试构造一个 if 语句来检查某些内容是否不等于“a”或“b”,当我添加“或”部分时,它似乎不等于为任一语句工作。如果我删除“或”,则它适用于其中一个。

此代码有效(对于一个语句):

NSString *source = metaItem.stringValue;
NSString *baddata = @"a";
NSString *baddata2 = @"b";
if (![source isEqualToString:baddata])
{
if(![source isEqualToString:self.songInfo.text])
{
self.songInfo.text = [source stringByAppendingString:@" "];
}
}

同样,如果我将 baddata 更改为 baddata2,它也可以正常工作。但如果我将其更改为此(以检测其中任何一个),则它们都不会被检测到:

if (![source isEqualToString:baddata] || ![source isEqualToString:baddata2])

if 行是否不正确?我是否需要使用“nor”之类的东西,如果需要,语法是什么?

最佳答案

baddatabaddata2 不同时,您的条件始终为真:任何字符串都不会等于其中之一,因为没有字符串可以等于 2一次获得不同的值。

您需要将条件更改为&&:

if (![source isEqualToString:baddata] && ![source isEqualToString:baddata2])

或使用De Morgan's Laws合并中间:

if (!([source isEqualToString:baddata] || [source isEqualToString:baddata2]))

如果您有两个以上的“坏数据”值,请考虑根据它们构造一个哈希集,并使用集合包含检查而不是逻辑 AND/OR 链。

关于Objective-C "if not equal or"语句不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48381128/

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