2015-11-08 100 views
-2

我試圖從斯威夫特下面的線隱蔽斯威夫特2在斯威夫特2

同等類型的布爾
var cfstatus = CFWriteStreamOpen(stream) as Boolean 

// connection fail 
if cfstatus == 0 { 
    println("Not connected") 
    return 
} 

在斯威夫特2沒有「布爾」類型。 我曾嘗試使用「布爾」,但給了一個錯誤:

Binary operator == cannot be applied to operands of type Bool and Int

回答

0

CFWriteStreamOpen簽名是

public func CFWriteStreamOpen(stream: CFWriteStream!) -> Bool 

有不需要類型轉換。

let cfstatus = CFWriteStreamOpen(stream) 
// connection fail 
if cfstatus == false { // or if !cfstatus { 
    println("Not connected") 
    return 
} 

Xcode提供由聲明的一個簡單的查找-clicking上的符號。

由於您試圖將Bool(cfstatus)與Swift中禁止的Int(0)進行比較,您會收到錯誤消息。

0

Bool類型是否正確; Boolean默認情況下不存在。

==的上述比較失敗,因爲操作數具有不同的類型(在此例中爲BoolInt)。試試這個:

var cfstatus = CFWriteStreamOpen(stream) 

// connection fail 
if !cfstatus { 
    println("Not connected") 
    return 
} 
+1

...並刪除'作爲布爾'。順便說一下,在Swift 2之前確實存在'Boolean'。 –