Как проверить текущий поток в Swift 3?
Как проверить, какой из них является текущим потоком в Swift 3?
в предыдущих версиях Swift можно было проверить, является ли текущий поток основным, сделав это:
NSThread.isMainThread()
4 ответов
Thread.isMainThread
вернет логическое значение, указывающее, находитесь ли вы в основном потоке пользовательского интерфейса. Но это не даст вам текущей нити. Он только скажет вам, находитесь ли вы на главном или нет.
Thread.current
вернет текущий поток, в котором вы находитесь.
Я сделал расширение для печати потока и очереди:
extension Thread {
class func printCurrent() {
print("\r⚡️: \(Thread.current)\r" + ": \(OperationQueue.current?.underlyingQueue?.label ?? "None")\r")
}
}
Thread.printCurrent()
результат будет такой:
⚡️: <NSThread: 0x604000074380>{number = 1, name = main}
: com.apple.main-thread
в последнем Swift 4.0 ~ 4.2, мы можем использовать Thread.current
посмотреть возвращает объект thread, представляющий текущий поток выполнения