Avatar
omochimetaru 1/21/2020 1:31 PM
extension DispatchQueue { func startBindingLoop<T: AnyObject>(_ object: T, _ f: @escaping (T) -> Void) { weak var object = object self.async { while true { guard let object = object else { break } f(object) } } } } class ViewController { let pq = DispatchQueue(label: "pq") func viewDidLoad() { pq.startBindingLoop(self) { (self) in print(self) } } }
1:32 PM
パターンの再利用可能版↑