5 // Created by Hori,Masaki on 2017/01/29.
6 // Copyright © 2017年 Hori,Masaki. All rights reserved.
11 class Deck: KCManagedObject {
12 @NSManaged var flagship: NSNumber?
13 @NSManaged var id: Int
14 @NSManaged var member_id: NSNumber? // swiftlint:disable:this variable_name
15 @NSManaged var mission_0: Int // swiftlint:disable:this variable_name
16 @NSManaged var mission_1: Int // swiftlint:disable:this variable_name
17 @NSManaged var mission_2: Int // swiftlint:disable:this variable_name
18 @NSManaged var mission_3: Int // swiftlint:disable:this variable_name
19 @NSManaged var name: String // swiftlint:disable:this variable_name
20 @NSManaged var name_id: NSNumber? // swiftlint:disable:this variable_name
21 @NSManaged var ship_0: Int // swiftlint:disable:this variable_name
22 @NSManaged var ship_1: Int // swiftlint:disable:this variable_name
23 @NSManaged var ship_2: Int // swiftlint:disable:this variable_name
24 @NSManaged var ship_3: Int // swiftlint:disable:this variable_name
25 @NSManaged var ship_4: Int // swiftlint:disable:this variable_name
26 @NSManaged var ship_5: Int // swiftlint:disable:this variable_name
30 func setShip(id: Int, for position: Int) {
32 case 0: return ship_0 = id
33 case 1: return ship_1 = id
34 case 2: return ship_2 = id
35 case 3: return ship_3 = id
36 case 4: return ship_4 = id
37 case 5: return ship_5 = id
38 default: fatalError("Deck.setShip: position out of range.")
41 func shipId(of position: Int) -> Int? {
52 private func ship(ofId identifier: Int) -> Ship? {
53 guard let moc = self.managedObjectContext else { return nil }
54 let req = NSFetchRequest<Ship>(entityName: "Ship")
55 req.predicate = NSPredicate(format: "id = %ld", identifier)
56 guard let ships = try? moc.fetch(req),
57 let ship = ships.first
62 subscript(_ index: Int) -> Ship? {
63 guard let shipId = shipId(of: index) else { return nil }
64 return ship(ofId: shipId)