2 // TemporaryDataStoreAccessor.swift
5 // Created by Hori,Masaki on 2017/10/25.
6 // Copyright © 2017年 Hori,Masaki. All rights reserved.
11 extension TemporaryDataStore {
13 func battle() -> Battle? {
15 return battles().first
18 func battles() -> [Battle] {
20 guard let battles = try? self.objects(of: Battle.entity) else { return [] }
27 battles().forEach { delete($0) }
30 func createBattle() -> Battle? {
32 return insertNewObject(for: Battle.entity)
35 func sortedDamagesById() -> [Damage] {
37 let sortDescriptors = SortDescriptors(keyPath: \Damage.id, ascending: true)
39 guard let damages = try? objects(of: Damage.entity, sortDescriptors: sortDescriptors) else { return [] }
44 func damages() -> [Damage] {
46 guard let damages = try? objects(of: Damage.entity) else { return [] }
51 func createDamage() -> Damage? {
53 return insertNewObject(for: Damage.entity)
56 func guardEscaped() -> [GuardEscaped] {
58 guard let escapeds = try? objects(of: GuardEscaped.entity) else { return [] }
63 func ensuredGuardEscaped(byShipId shipId: Int) -> GuardEscaped? {
65 let predicate = Predicate(\GuardEscaped.shipID, equalTo: shipId)
66 .and(Predicate(true: \GuardEscaped.ensured))
68 guard let escapes = try? objects(of: GuardEscaped.entity, predicate: predicate) else { return nil }
73 func notEnsuredGuardEscaped() -> [GuardEscaped] {
75 let predicate = Predicate(false: \GuardEscaped.ensured)
77 guard let escapeds = try? objects(of: GuardEscaped.entity, predicate: predicate) else { return [] }
82 func createGuardEscaped() -> GuardEscaped? {
84 return insertNewObject(for: GuardEscaped.entity)