2014-11-04 1 views
2

Я не могу просто понять, как это может произойти, должно быть, неправильно понял некоторый базовый быстрый синтаксис. Как вы можете видеть на моем изображении, отладчик переходит в оператор if (зеленая строка), но «strd» и «elementName» не совпадают. Как это может произойти? И это происходит все время. Как я понял, вы должны использовать '==' при сравнении строк в swift.Странное поведение в if/и statement с помощью swift для iOS

enter image description here

EDIT: 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

Назначение elementname для «var» фактически решило мою проблему («let» did not work). Почему это так? Это не похоже на типичное поведение, скорее как ошибка ... – Zeezer

+0

http://stackoverflow.com/questions/24002092/what-is-the-difference-between-let-and-var-in-swift вы можете проверить ответьте по этой ссылке. Насколько известно, ваша проблема решена? – Nirmalsinh

+0

Я знаю разницу между «let» и «var», вот почему так странно, что работал только «var». Хотя сейчас это работает, мне все же хотелось бы объяснить, что я сделал не так? – Zeezer