0
我有這樣的代碼:我是否需要使用線程類捕獲自己?
myThreadTemp = Thread(target: self, selector: #selector(threadMain), object: nil)
@objc func threadMain(data: AnyObject) {
let runloop = RunLoop.current
runloop.add(NSMachPort(), forMode: RunLoopMode.defaultRunLoopMode)
while !Thread.current.isCancelled{
//foreground
DispatchQueue.main.async {[weak self] in
self?.somemethod()
self?.somevar = 1
print("tick")
}
if Thread.current.isCancelled {
}
Thread.sleep(forTimeInterval: 1.0)
}
runloop.run(mode: RunLoopMode.defaultRunLoopMode, before: NSDate.distantFuture)
}
或者我可以做這個:
DispatchQueue.main.async {
self.somemethod()
self.somevar = 1
print("tick")
}
我看到這一點:
Shall we always use [unowned self] inside closure in Swift
但如果使用@objc func
?