我們在SWIFT 2.2這樣的功能,打印日誌信息與當前正在運行的線程:如何獲得當前隊列名稱在迅速3
func MyLog(_ message: String) {
if Thread.isMainThread {
print("[MyLog]", message)
} else {
let queuename = String(UTF8String: dispatch_queue_get_label(DISPATCH_CURRENT_QUEUE_LABEL))! // Error: Cannot convert value of type '()' to expected argument type 'DispatchQueue?'
print("[MyLog] [\(queuename)]", message)
}
}
這些代碼不再SWIFT 3.0編譯。我們現在如何獲得隊列名稱?
這個問題關於如何確定兩個線程在同一個線程中的位置:Check if on correct dispatch queue in Swift 3。接受的答案建議使用setSpecific
將「標籤」與創建的隊列關聯。但是,這並不能解決問題,因爲我們想知道隊列名稱。隊列可能不一定是由我們自己創建的。
的可能的複製[檢查是否正確上調度隊列中的斯威夫特3](http://stackoverflow.com/questions/37952262/check-if-on-correct -dispatch-queue-in-swift-3) – ozgur