在Swift中創建GCD隊列時出現崩潰,有什麼想法?在Swift中創建GCD隊列?
var q: dispatch_queue_t?
q = dispatch_queue_create("com.kukodajanos.queryPlaces", 0)
在Swift中創建GCD隊列時出現崩潰,有什麼想法?在Swift中創建GCD隊列?
var q: dispatch_queue_t?
q = dispatch_queue_create("com.kukodajanos.queryPlaces", 0)
通過在documentational意見按alt尋找它+點擊就可以看到:
在ATTR你可以通過三兩件事:nil, DISPATCH_QUEUE_SERIAL and DISPATCH_QUEUE_CONCURRENT
不是int 。
據我所知第二個參數是一個參考而不是一個整數,所以你應該通過nil
而不是0
。
是否有任何理由將你聲明的變量聲明爲可選的?如果您打算將其分配到下一行,則最好將其設置爲不可選。另外,我想這在其一生中,你將不會改變它,所以它可能會更好,使其一成不變:
let q = dispatch_queue_create("com.kukodajanos.queryPlaces", nil)
傳遞nil而不是0:
var q: dispatch_queue_t?
q = dispatch_queue_create("com.kukodajanos.queryPlaces", nil)
傳遞零,而不是0作爲dispatch_queue_attr_t shoild訣竅。此外,函數返回一個隱含的解包可選,而不是可選,是故意的?
如此糟糕,編譯器甚至不會看到0和nil之間的差異,這會導致運行時崩潰。 – Andy
@安迪你是什麼意思? 0不等於零,所以當然會崩潰。 – Arbitur
沒有編譯錯誤。你可以用0編譯它並在運行時崩潰。 – Andy