2017-07-27 59 views
0

Swift if声明适用于所有其他设备,但iPhone 4S与iOS 9.2.1。Swift如果条件不成功

这是代码的集合,我使用:
我上面印刷一个布尔值,应用条件之前,和它打印0,但是编译器直接跳转到else部分,失败的if声明。

print(NSNumber.init(value: socketListener!.isConnected)) //prints 0 
if socketListener!.isConnected == false { 
    // skipped 
} else { 
    // executed 
} 

enter image description here

+2

为什么不要将它简单地打印为print(socketListener!.isConnected)'。你确定'socketListener'不是'nil'吗? – Sulthan

+0

是的,它不是零。 –

+0

你是否检查过它'if socketListener!.isConnected {}' –

回答

1

我建议你去长,但正确的,通过展开您的套接字监听可选的,或者您也可以直接与长解缠连去:

guard let isConnected = socketListener.isConnected else { return } 

print(NSNumber.init(value: isConnected)) //prints 0 
if isConnected == false { 
    // Your code 
} else { 
    // Your code 
}