OSDN Git Service

staticプロパティをインスタンスプロパティに変更
[kcd/KCD.git] / KCD / JSONMapper.swift
index 6e38828..0536b8b 100644 (file)
@@ -10,19 +10,19 @@ import Cocoa
 import SwiftyJSON
 import Doutaku
 
-struct MappingConfiguration<T: NSManagedObject> {
+struct MappingConfiguration<T: Entity> {
     
-    let entity: Entity<T>
+    let entity: T.Type
     let dataKeys: [String]
     let primaryKeys: [String]
     let editorStore: CoreDataAccessor
-    let ignoreKeys: [String]
+    let ignoreKeys: Set<String>
     
-    init(entity: Entity<T>,
+    init(entity: T.Type,
          dataKeys: [String] = ["api_data"],
          primaryKeys: [String] = ["id"],
          editorStore: CoreDataAccessor,
-         ignoreKeys: [String] = []) {
+         ignoreKeys: Set<String> = []) {
         
         self.entity = entity
         self.dataKeys = dataKeys
@@ -34,7 +34,7 @@ struct MappingConfiguration<T: NSManagedObject> {
 
 protocol JSONMapper {
     
-    associatedtype ObjectType: NSManagedObject
+    associatedtype ObjectType: Entity
     
     init(_ apiResponse: APIResponse)
     
@@ -167,7 +167,7 @@ extension JSONMapper {
         }
     }
     
-    private func sortedObjects<T>(_ entity: Entity<T>) -> [T] {
+    private func sortedObjects<ResultType: Entity>(_ entity: ResultType.Type) -> [ResultType] {
         
         let store = configuration.editorStore
         
@@ -178,7 +178,7 @@ extension JSONMapper {
             return []
         }
         
-        return (objects as NSArray).sortedArray(using: sortDescriptors) as? [T] ?? []
+        return (objects as NSArray).sortedArray(using: sortDescriptors) as? [ResultType] ?? []
     }
     private func commintInContext() {