私はこのコードを持っている:スレッドクラスを使用して自己をキャプチャする必要がありますか?
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
が使用されている場合でしたか?