From: masakih Date: Sun, 29 Oct 2017 07:08:40 +0000 (+0900) Subject: addObserverOnceを利用するようにした X-Git-Tag: 1.9b23~5 X-Git-Url: http://git.osdn.net/view?p=kcd%2FKCD.git;a=commitdiff_plain;h=18a98c3961ea0f6e51fae372b673946f1edb42ac addObserverOnceを利用するようにした --- diff --git a/KCD/FleetManager.swift b/KCD/FleetManager.swift index bd01c19a..a9ec66dd 100644 --- a/KCD/FleetManager.swift +++ b/KCD/FleetManager.swift @@ -48,13 +48,11 @@ final class FleetManager: NSObject { if fleets[0].ships.isEmpty { - let center = NotificationCenter.default - weak var token: NSObjectProtocol! - token = center.addObserver(forName: .PortAPIReceived, object: nil, queue: nil) {_ in - - center.removeObserver(token) - DispatchQueue.main.async(execute: self.setupFleetController) - DispatchQueue.main.async(execute: self.setNewFleetNumberToShip) + NotificationCenter.default + .addObserverOnce(forName: .PortAPIReceived, object: nil, queue: nil) { _ in + + DispatchQueue.main.async(execute: self.setupFleetController) + DispatchQueue.main.async(execute: self.setNewFleetNumberToShip) } } else { diff --git a/KCD/FleetViewController.swift b/KCD/FleetViewController.swift index e9ce2675..3b06ccc7 100644 --- a/KCD/FleetViewController.swift +++ b/KCD/FleetViewController.swift @@ -255,11 +255,9 @@ final class FleetViewController: NSViewController { fleetNumber = 1 // 初回起動時などデータがまだない時はportAPIを受信後設定する - weak var token: NSObjectProtocol? - token = NotificationCenter.default - .addObserver(forName: .PortAPIReceived, object: nil, queue: nil) { [weak self] _ in + NotificationCenter.default + .addObserverOnce(forName: .PortAPIReceived, object: nil, queue: nil) { [weak self] _ in - token.map(NotificationCenter.default.removeObserver) self?.fleetNumber = 1 } diff --git a/KCD/WindowManager.swift b/KCD/WindowManager.swift index e3057a0f..c2e5ddff 100644 --- a/KCD/WindowManager.swift +++ b/KCD/WindowManager.swift @@ -122,12 +122,9 @@ final class WindowManager { browserWindowControllers.append(browser) browser.window?.makeKeyAndOrderFront(nil) - weak var token: NSObjectProtocol! = nil - - token = NotificationCenter.default - .addObserver(forName: NSWindow.willCloseNotification, object: browser.window, queue: nil) { [unowned self] notification in + NotificationCenter.default + .addObserverOnce(forName: NSWindow.willCloseNotification, object: browser.window, queue: nil) { [unowned self] notification in - NotificationCenter.default.removeObserver(token) if let obj = notification.object as? NSWindow, let index = self.browserWindowControllers.index(where: { $0.window == obj }) {