当我调试时,我注意到当条件逻辑为FALSE时,调试器正在输入IF语句。
您可以在调试区域看到foundCharacters
不为空但parentElement
与字符串"项不匹配。"那么为什么Xcode会遇到那行代码呢?当我尝试进入下一行时,代码实际上并没有执行,调试器会跳回到IF语句。为什么Xcode这样做?我在这浪费了一个小时。
答案 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 成功块。
一个干净的构建,删除派生数据并在我的模拟器上重新安装应用程序对我有用。