2 // TemporaryDataStoreAccessor.swift
5 // Created by Hori,Masaki on 2017/10/25.
6 // Copyright © 2017年 Hori,Masaki. All rights reserved.
9 extension TemporaryDataStore {
11 func battle() -> Battle? {
13 return battles().first
16 func battles() -> [Battle] {
18 guard let battles = try? self.objects(of: Battle.entity) else { return [] }
25 battles().forEach { delete($0) }
28 func createBattle() -> Battle? {
30 return insertNewObject(for: Battle.entity)
33 func sortedDamagesById() -> [Damage] {
35 let sortDescriptor = NSSortDescriptor(key: #keyPath(Damage.id), ascending: true)
37 guard let damages = try? objects(of: Damage.entity, sortDescriptors: [sortDescriptor]) else { return [] }
42 func damages() -> [Damage] {
44 guard let damages = try? objects(of: Damage.entity) else { return [] }
49 func createDamage() -> Damage? {
51 return insertNewObject(for: Damage.entity)
54 func guardEscaped() -> [GuardEscaped] {
56 guard let escapeds = try? objects(of: GuardEscaped.entity) else { return [] }
61 func ensuredGuardEscaped(byShipId shipId: Int) -> GuardEscaped? {
63 let p = NSPredicate.empty
64 .and(NSPredicate(#keyPath(GuardEscaped.shipID), equal: shipId))
65 .and(.true(#keyPath(GuardEscaped.ensured)))
67 guard let escapes = try? objects(of: GuardEscaped.entity, predicate: p) else { return nil }
72 func notEnsuredGuardEscaped() -> [GuardEscaped] {
74 let predicate = NSPredicate.false(#keyPath(GuardEscaped.ensured))
76 guard let escapeds = try? objects(of: GuardEscaped.entity, predicate: predicate) else { return [] }
81 func createGuardEscaped() -> GuardEscaped? {
83 return insertNewObject(for: GuardEscaped.entity)