From 18a98c3961ea0f6e51fae372b673946f1edb42ac Mon Sep 17 00:00:00 2001 From: masakih Date: Sun, 29 Oct 2017 16:08:40 +0900 Subject: [PATCH] =?utf8?q?addObserverOnce=E3=82=92=E5=88=A9=E7=94=A8?= =?utf8?q?=E3=81=99=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB=E3=81=97=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- KCD/FleetManager.swift | 12 +++++------- KCD/FleetViewController.swift | 6 ++---- KCD/WindowManager.swift | 7 ++----- 3 files changed, 9 insertions(+), 16 deletions(-) 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 }) { -- 2.11.0