OSDN Git Service

addObserverOnceを利用するようにした
[kcd/KCD.git] / KCD / FleetManager.swift
index ddab450..a9ec66d 100644 (file)
@@ -8,11 +8,6 @@
 
 import Cocoa
 
-extension Notification.Name {
-    
-    static let DidPrepareFleet = Notification.Name("com.masakih.KCD.Notification.DidPrepareFleet")
-}
-
 final class FleetManager: NSObject {
     
     override init() {
@@ -31,7 +26,6 @@ final class FleetManager: NSObject {
             
             setNewFleetNumberToShip()
             return
-            
         }
         
         super.observeValue(forKeyPath: keyPath, of: object, change: change, context: context)
@@ -49,25 +43,21 @@ final class FleetManager: NSObject {
         
         guard fleets.count == 4 else {
             
-            print("Can not create Fleet")
-            return
+            return Logger.shared.log("Can not create Fleet")
         }
         
         if fleets[0].ships.isEmpty {
             
-            let center = NotificationCenter.default
-            var token: NSObjectProtocol!
-            token = center.addObserver(forName: .PortAPIReceived, object: nil, queue: nil) {_ in
-                
-                center.removeObserver(token)
-                self.setupFleetController()
-                center.post(name: .DidPrepareFleet, object: self)
+            NotificationCenter.default
+                .addObserverOnce(forName: .PortAPIReceived, object: nil, queue: nil) { _ in
+                    
+                    DispatchQueue.main.async(execute: self.setupFleetController)
+                    DispatchQueue.main.async(execute: self.setNewFleetNumberToShip)
             }
             
         } else {
             
             setupFleetController()
-            
         }
     }