2014-11-04 81 views
2

我不能简单地理解这是怎么发生的,必须误解一些基本的swift语法。正如你在我的图像上看到的,调试器进入if语句(绿线),但“strd”和“elementName”不一样。这怎么会发生?它始终在发生。据我所知,在swift中比较字符串时应该使用'=='。奇怪的行为在if /和使用swift的iOS语句

enter image description here

编辑: 解决方案nimit提出确实acually工作,但它不回答我的问题。我做错了什么,以及如何避免在这种情况下出现这种错误?

回答

1

其工作的罚款,如果我们把静态字符串

var str1 : String? = "asdd" 

var strd = "device" 
var elementname = "major" 


if str1 != nil && strd == elementname 
{ 
    println("You are in if condition") 
} 
else 
{ 
    println("There is no condition mactched") 
} 

只做一件事情,采取变量和存储的ElementName到它和尝试。

+0

将元素名赋值给'var'实际上解决了我的问题('let'did not work)。这是为什么?这似乎不是一个典型的行为,而是像一个bug ... – Zeezer 2014-11-04 12:28:25

+0

http://stackoverflow.com/questions/24002092/what-is-the-difference-between-let-and-var-in-swift你可以检查在这个链接中回答。据了解,你的问题解决了? – Nirmalsinh 2014-11-04 12:37:04

+0

我知道'let'和'var'之间的区别,这就是为什么只有'var'起作用才如此奇怪。即使它现在起作用,我仍然想要解释我做错了什么? – Zeezer 2014-11-04 13:10:20