OSDN Git Service

guard の書き方を統一した
[kcd/KCD.git] / KCD / MissionStatus.swift
index 37c096f..2f358dd 100644 (file)
@@ -9,7 +9,7 @@
 
 import Cocoa
 
-fileprivate enum State: Int {
+private enum State: Int {
     
     case none = 0
     case hasMission = 1
@@ -27,20 +27,19 @@ final class MissionStatus: NSObject {
         didSet { time = realTime as NSNumber }
     }
     
-    dynamic var name: String?
-    dynamic var time: NSNumber?
-    dynamic var state: NSNumber?
-    dynamic var missionId: NSNumber? {
+    @objc dynamic var name: String?
+    @objc dynamic var time: NSNumber?
+    @objc dynamic var state: NSNumber?
+    @objc dynamic var missionId: NSNumber? {
         
         didSet { updateState() }
     }
-    dynamic var milliseconds: NSNumber?
-    dynamic var fleetName: String?
+    @objc dynamic var milliseconds: NSNumber?
+    @objc dynamic var fleetName: String?
     
     init?(number: Int) {
         
-        guard case 2...4 = number
-            else { return nil }
+        guard case 2...4 = number else { return nil }
         
         self.number = number
         controller = NSArrayController()
@@ -53,25 +52,28 @@ final class MissionStatus: NSObject {
         controller.automaticallyRearrangesObjects = true
         controller.fetch(nil)
         
-        bind(#keyPath(state), to: controller, withKeyPath: "selection.mission_0")
-        bind(#keyPath(missionId), to: controller, withKeyPath: "selection.mission_1")
-        bind(#keyPath(milliseconds), to: controller, withKeyPath: "selection.mission_2")
-        bind(#keyPath(fleetName), to: controller, withKeyPath: "selection.name")
+        bind(NSBindingName(#keyPath(state)), to: controller, withKeyPath: "selection.mission_0")
+        bind(NSBindingName(#keyPath(missionId)), to: controller, withKeyPath: "selection.mission_1")
+        bind(NSBindingName(#keyPath(milliseconds)), to: controller, withKeyPath: "selection.mission_2")
+        bind(NSBindingName(#keyPath(fleetName)), to: controller, withKeyPath: "selection.name")
     }
     
     deinit {
         
-        unbind(#keyPath(state))
-        unbind(#keyPath(missionId))
-        unbind(#keyPath(milliseconds))
-        unbind(#keyPath(fleetName))
+        unbind(NSBindingName(#keyPath(state)))
+        unbind(NSBindingName(#keyPath(missionId)))
+        unbind(NSBindingName(#keyPath(milliseconds)))
+        unbind(NSBindingName(#keyPath(fleetName)))
     }
     
     private func updateState() {
         
         guard let state = state as? Int,
-            let stat = State(rawValue: state)
-            else { return print("unknown State") }
+            let stat = State(rawValue: state) else {
+                
+                print("unknown State")
+                return
+        }
         
         if stat == .none || stat == .finish {
             
@@ -83,17 +85,16 @@ final class MissionStatus: NSObject {
             return
         }
         
-        guard let missionId = self.missionId as? Int
-            else { return }
+        guard let missionId = self.missionId as? Int else { return }
         
-        guard let mission = ServerDataStore.default.masterMission(by: missionId)
-            else {
-                name = "Unknown"
-                DispatchQueue(label: "MissionStatus")
-                    .asyncAfter(deadline: .now() + 0.33) {
-                        self.updateState()
-                }
-                return
+        guard let mission = ServerDataStore.default.masterMission(by: missionId) else {
+            
+            name = "Unknown"
+            DispatchQueue(label: "MissionStatus")
+                .asyncAfter(deadline: .now() + 0.33) {
+                    self.updateState()
+            }
+            return
         }
         
         name = mission.name
@@ -108,11 +109,11 @@ final class MissionStatus: NSObject {
             return
         }
         
-        guard let milliSeconds = milliseconds as? Int
-            else {
-                name = nil
-                time = nil
-                return
+        guard let milliSeconds = milliseconds as? Int else {
+            
+            name = nil
+            time = nil
+            return
         }
         
         let compTime = TimeInterval(Int(milliSeconds / 1_000))
@@ -123,8 +124,7 @@ final class MissionStatus: NSObject {
         if didNotify { return }
         if diff >= 1 * 60 { return }
         
-        guard let fleetName = fleetName
-            else { return }
+        guard let fleetName = fleetName else { return }
         
         let notification = NSUserNotification()
         let format = NSLocalizedString("%@ Will Return From Mission.", comment: "%@ Will Return From Mission.")
@@ -132,7 +132,7 @@ final class MissionStatus: NSObject {
         let txtFormat = NSLocalizedString("%@ Will Return From %@.", comment: "%@ Will Return From %@.")
         notification.informativeText = String(format: txtFormat, fleetName, name!)
         
-        if UserDefaults.standard.playFinishMissionSound {
+        if UserDefaults.standard[.playFinishMissionSound] {
             
             notification.soundName = NSUserNotificationDefaultSoundName
         }