当条件为假时,XCode 6进入IF语句

时间:2015-03-18 03:34:21

标签: ios xcode6

当我调试时,我注意到当条件逻辑为FALSE时,调试器正在输入IF语句。

enter image description here

您可以在调试区域看到foundCharacters不为空但parentElement与字符串"项不匹配。"那么为什么Xcode会遇到那行代码呢?当我尝试进入下一行时,代码实际上并没有执行,调试器会跳回到IF语句。为什么Xcode这样做?我在这浪费了一个小时。

4 个答案:

答案 0 :(得分:1)

尝试isEqualToString。

使用" =="如果两个对象具有相同的内存地址,则返回true。您要检查的是检查两个字符串是否在功能上等效。

NSHipster在这里有一篇关于测试平等的文章:http://nshipster.com/equality/

编辑:这仅适用于Objective-C。显然斯威夫特是相反的。

答案 1 :(得分:0)

对于长度检查,您可以使用yourString.length

为了平等,您需要使用[yourString isEqualToString:@"Valuetobecompared"]

答案 2 :(得分:0)

在swift中使用"=="罚款我怀疑它确实在if部分,它可能是编译时踩踏的一部分。如果要完成,请尝试打印一些内容。

答案 3 :(得分:0)

就我而言,我正在比较字符串是否为空然后执行某些操作,但由于某种原因,即使字符串为空或为零,Xcode 也会进入 if 成功块。

一个干净的构建,删除派生数据并在我的模拟器上重新安装应用程序对我有用。