OSDN Git Service

バージョンを1.9b27に更新
[kcd/KCD.git] / KCD / Entity.swift
1 //
2 //  Entity.swift
3 //  KCD
4 //
5 //  Created by Hori,Masaki on 2017/03/11.
6 //  Copyright © 2017年 Hori,Masaki. All rights reserved.
7 //
8
9 import CoreData
10
11 struct Entity<T: NSManagedObject> {
12     
13     let name: String
14 }
15
16 protocol EntityProvider {
17     
18     associatedtype ObjectType: NSManagedObject = Self
19     
20     static var entityName: String { get }
21     static var entity: Entity<ObjectType> { get }
22 }
23
24 extension EntityProvider {
25     
26     static var entity: Entity<ObjectType> {
27         
28         return Entity<ObjectType>(name: entityName)
29     }
30 }
31
32 extension NSManagedObject {
33     
34     class var entityName: String { return String(describing: self) }
35 }