【发布时间】:2016-12-20 19:36:38
【问题描述】:
我正在比较两个字符串。
问题是我的两个字符串都是nil。我不知道两个字符串什么时候出现nil,那么为什么控制进入success 块。
我正在使用这段代码来比较字符串:
if(![oldString isEqualToString:newString])
{
//in case both are nil control reaches here
needToShowPopup = YES;
break;
}
编辑:我希望如果只有两个字符串不同,那么只有我的控件会进入if statement。当两者都是nil时,我的条件失败了
【问题讨论】:
-
有4种可能。 1) 两个字符串都不是 nil,2) 两个都是
nil,3) 只有oldString是nil,4) 只有newString是nil。用您希望如何处理所有 4 个案例来更新您的问题。 -
您的编辑没有帮助。清楚地解释您希望如何处理所有 4 种情况。只是说您希望“处理”它并没有告诉我们如何处理。
-
@rmaddy 现在好吗?
-
请注意,当
oldString为nil时,对isEqualToString的调用将始终返回0。实际上,在nil对象上调用的每个方法都保证返回0。跨度> -
您被否决了,因为您需要 30 秒才能通过调整和运行代码来查看当字符串为空时 [oldstring isEqualToStringLnewString] 评估的内容。然后你会看到它评估为假。那么你应该知道 !false 是真的。因此,只需几分钟的调试工作,一开始就不需要提问。
标签: objective-c null nsstring