2014-11-04 4 views
2

어떻게 이런 일이 발생하는지 간단히 이해할 수 없으며 몇 가지 기본 구문을 잘못 이해 했어야합니다. 내 이미지에서 볼 수 있듯이, 디버거는 if 문 (녹색 선)으로 들어가지만 "strd"와 "elementName"은 같지 않습니다. 어떻게 될 수 있습니까? 그리고 그것은 항상 발생합니다. 내가 이해했듯이 '=='를 사용하면 문자열을 신속하게 비교할 수 있습니다.iOS 용 swift를 사용하는 if /와 statement의 이상한 동작

enter image description here

편집 : 솔루션 nimit이 제안 이 acually 않습니다 작동하지만 내 질문에 대답 나던. 나는 무엇을 잘못 했는가? 그리고 furure에서이 오류를 피하는 방법은 무엇인가? 잘 작동

답변

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'에 elementname을 할당하면 실제로 내 문제가 해결되었습니다. 이게 왜 그렇게? 이것은 일반적으로 버그와 같은 일반적인 동작처럼 보이지 않습니다 ... – Zeezer

+0

http://stackoverflow.com/questions/24002092/what-is-the-difference-between-let-and-var-in-swift 확인할 수 있습니다. 이 링크에서 대답하십시오. 아시다시피 문제는 해결 되었습니까? – Nirmalsinh

+0

'let'과 'var'의 차이점을 알고 있는데 왜 'var'만이 그렇게 이상하게 생겼는지 설명합니다. 지금도 작동하지만, 내가 뭘 잘못했는지 설명하고 싶습니다. – Zeezer