OSDN Git Service

定数の初期化方法を変更
[kcd/KCD.git] / KCD / Fleet.swift
index 05a813f..430147c 100644 (file)
@@ -13,6 +13,7 @@ private var pDeckContext = 0
 final class Fleet: NSObject {
     
     let fleetNumber: Int
+    private let deckController = NSObjectController()
     
     private let deckObserveKeys = [
         "selection.ship_0", "selection.ship_1", "selection.ship_2",
@@ -28,13 +29,12 @@ final class Fleet: NSObject {
         }
         
         fleetNumber = number
-        deckController = NSObjectController()
         
         super.init()
         
         deckController.entityName = Deck.entityName
         deckController.managedObjectContext = ServerDataStore.default.context
-        deckController.fetchPredicate = NSPredicate(format: "id = %ld", number)
+        deckController.fetchPredicate = NSPredicate(#keyPath(Deck.id), equal: number)
         let req = NSFetchRequest<NSFetchRequestResult>()
         req.entity = NSEntityDescription.entity(forEntityName: Deck.entityName,
                                                 in: deckController.managedObjectContext!)
@@ -61,20 +61,23 @@ final class Fleet: NSObject {
         
     }
     
+    @objc override class func keyPathsForValuesAffectingValue(forKey key: String) -> Set<String> {
+        
+        switch key {
+            
+        case #keyPath(name): return ["deck.name"]
+            
+        case #keyPath(id): return ["deck.id"]
+            
+        default: return []
+        }
+    }
+    
     @objc dynamic private(set) var ships: [Ship] = []
-    private let deckController: NSObjectController
     @objc weak var deck: Deck?
     
     @objc dynamic var name: String? { return deck?.name }
-    @objc class func keyPathsForValuesAffectingName() -> Set<String> {
-        
-        return ["deck.name"]
-    }
     @objc dynamic var id: NSNumber? { return deck?.id as NSNumber? }
-    @objc class func keyPathesForValuesAffectiongId() -> Set<String> {
-        
-        return ["deck.id"]
-    }
     
     subscript(_ index: Int) -> Ship? { return deck?[index] }