From 03ca82803d4f49ef0ada04c9a7203e9bb995bc89 Mon Sep 17 00:00:00 2001 From: masakih Date: Sat, 14 Jan 2017 09:54:44 +0900 Subject: [PATCH] =?utf8?q?HMMemberBasicCommand=E3=82=92Swift=E3=81=AB?= =?utf8?q?=E5=A4=89=E6=8F=9B=E3=81=97=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- KCD.xcodeproj/project.pbxproj | 10 +++---- KCD/HMMemberBasicCommand.h | 13 --------- KCD/HMMemberBasicCommand.m | 61 ------------------------------------------ KCD/HMMemberBasicCommand.swift | 47 ++++++++++++++++++++++++++++++++ KCD/KCD-Bridging-Header.h | 1 - 5 files changed, 51 insertions(+), 81 deletions(-) delete mode 100644 KCD/HMMemberBasicCommand.h delete mode 100644 KCD/HMMemberBasicCommand.m create mode 100644 KCD/HMMemberBasicCommand.swift diff --git a/KCD.xcodeproj/project.pbxproj b/KCD.xcodeproj/project.pbxproj index 254ec52f..e5376c2a 100644 --- a/KCD.xcodeproj/project.pbxproj +++ b/KCD.xcodeproj/project.pbxproj @@ -75,11 +75,11 @@ F44BC70F1E27BE55004644E3 /* HMMemberShip2Command.swift in Sources */ = {isa = PBXBuildFile; fileRef = F44BC70E1E27BE55004644E3 /* HMMemberShip2Command.swift */; }; F44BC7111E27C61A004644E3 /* HMMemberSlotItemCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = F44BC7101E27C61A004644E3 /* HMMemberSlotItemCommand.swift */; }; F44BC7131E28FDC4004644E3 /* HMMemberShipCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = F44BC7121E28FDC4004644E3 /* HMMemberShipCommand.swift */; }; + F44BC7151E2914FE004644E3 /* HMMemberBasicCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = F44BC7141E2914FE004644E3 /* HMMemberBasicCommand.swift */; }; F4513EDD18B619B600073552 /* HMCoreDataManager.m in Sources */ = {isa = PBXBuildFile; fileRef = F4513EDC18B619B600073552 /* HMCoreDataManager.m */; }; F4513EE818B77A5300073552 /* HMMemberKDockCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F4513EE718B77A5300073552 /* HMMemberKDockCommand.m */; }; F4513EEB18B7900A00073552 /* HMMemberDeckCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F4513EEA18B7900A00073552 /* HMMemberDeckCommand.m */; }; F4513EEE18B8E2F600073552 /* HMMemberMaterialCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F4513EED18B8E2F600073552 /* HMMemberMaterialCommand.m */; }; - F4513EF318B991F800073552 /* HMMemberBasicCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F4513EF218B991F800073552 /* HMMemberBasicCommand.m */; }; F45771231E1BCC7C008A9215 /* HMPeriodicNotifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = F45771221E1BCC7C008A9215 /* HMPeriodicNotifier.swift */; }; F45F3BE11E067A870009434E /* HMHistoryItemCleaner.swift in Sources */ = {isa = PBXBuildFile; fileRef = F45F3BE01E067A870009434E /* HMHistoryItemCleaner.swift */; }; F45F3BE31E06A60A0009434E /* HMUpgradableShipsWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F45F3BE21E06A60A0009434E /* HMUpgradableShipsWindowController.swift */; }; @@ -409,6 +409,7 @@ F44BC70E1E27BE55004644E3 /* HMMemberShip2Command.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HMMemberShip2Command.swift; sourceTree = ""; }; F44BC7101E27C61A004644E3 /* HMMemberSlotItemCommand.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HMMemberSlotItemCommand.swift; sourceTree = ""; }; F44BC7121E28FDC4004644E3 /* HMMemberShipCommand.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HMMemberShipCommand.swift; sourceTree = ""; }; + F44BC7141E2914FE004644E3 /* HMMemberBasicCommand.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HMMemberBasicCommand.swift; sourceTree = ""; }; F4513EDB18B619B600073552 /* HMCoreDataManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMCoreDataManager.h; sourceTree = ""; }; F4513EDC18B619B600073552 /* HMCoreDataManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMCoreDataManager.m; sourceTree = ""; }; F4513EE618B77A5300073552 /* HMMemberKDockCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMMemberKDockCommand.h; sourceTree = ""; }; @@ -417,8 +418,6 @@ F4513EEA18B7900A00073552 /* HMMemberDeckCommand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMMemberDeckCommand.m; sourceTree = ""; }; F4513EEC18B8E2F600073552 /* HMMemberMaterialCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMMemberMaterialCommand.h; sourceTree = ""; }; F4513EED18B8E2F600073552 /* HMMemberMaterialCommand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMMemberMaterialCommand.m; sourceTree = ""; }; - F4513EF118B991F800073552 /* HMMemberBasicCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMMemberBasicCommand.h; sourceTree = ""; }; - F4513EF218B991F800073552 /* HMMemberBasicCommand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMMemberBasicCommand.m; sourceTree = ""; }; F45771221E1BCC7C008A9215 /* HMPeriodicNotifier.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HMPeriodicNotifier.swift; sourceTree = ""; }; F45F3BDD1E0679D80009434E /* KCD-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "KCD-Bridging-Header.h"; sourceTree = ""; }; F45F3BE01E067A870009434E /* HMHistoryItemCleaner.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HMHistoryItemCleaner.swift; sourceTree = ""; }; @@ -843,8 +842,7 @@ F4513EEA18B7900A00073552 /* HMMemberDeckCommand.m */, F4513EEC18B8E2F600073552 /* HMMemberMaterialCommand.h */, F4513EED18B8E2F600073552 /* HMMemberMaterialCommand.m */, - F4513EF118B991F800073552 /* HMMemberBasicCommand.h */, - F4513EF218B991F800073552 /* HMMemberBasicCommand.m */, + F44BC7141E2914FE004644E3 /* HMMemberBasicCommand.swift */, F44BC7121E28FDC4004644E3 /* HMMemberShipCommand.swift */, F44BC7101E27C61A004644E3 /* HMMemberSlotItemCommand.swift */, F44BC70E1E27BE55004644E3 /* HMMemberShip2Command.swift */, @@ -1684,6 +1682,7 @@ F4AA59481E1E3CBA001667AF /* HMAirbasePlaneStateTransformer.swift in Sources */, F4E7802E18DC3AF00011BC4C /* LocalData.xcdatamodeld in Sources */, F4F9F88F1C6B6ACA00D0EE76 /* HMKCNyukyoDock+CoreDataProperties.m in Sources */, + F44BC7151E2914FE004644E3 /* HMMemberBasicCommand.swift in Sources */, F4A9E7FB1D045BC100F91746 /* HMScreenshotModel.m in Sources */, F47215AC1E1FA2460083D3BC /* HMTemporaryDataStore.swift in Sources */, F448F9981B75A128004901AD /* HMKCBasic.m in Sources */, @@ -1832,7 +1831,6 @@ F44BC7011E251408004644E3 /* HMDestroyItem2Command.swift in Sources */, F45FBB731E116F53000E72B9 /* HMMainTabVIewItemViewController.swift in Sources */, F4F9F8A61C78596900D0EE76 /* HMAnchorageRepairManager.m in Sources */, - F4513EF318B991F800073552 /* HMMemberBasicCommand.m in Sources */, F4D05BD41E0F4F8500688D66 /* HMShipDetailViewController.swift in Sources */, F49097891E1A99EA0085A45D /* HMCollectionView.swift in Sources */, F4268009193AF4E000B2C27F /* HMUserDefaults.m in Sources */, diff --git a/KCD/HMMemberBasicCommand.h b/KCD/HMMemberBasicCommand.h deleted file mode 100644 index 7aaf9deb..00000000 --- a/KCD/HMMemberBasicCommand.h +++ /dev/null @@ -1,13 +0,0 @@ -// -// HMMemberBasicCommand.h -// KCD -// -// Created by Hori,Masaki on 2014/02/23. -// Copyright (c) 2014年 Hori,Masaki. All rights reserved. -// - -#import "HMJSONCommand.h" - -@interface HMMemberBasicCommand : HMJSONCommand - -@end diff --git a/KCD/HMMemberBasicCommand.m b/KCD/HMMemberBasicCommand.m deleted file mode 100644 index bb9af442..00000000 --- a/KCD/HMMemberBasicCommand.m +++ /dev/null @@ -1,61 +0,0 @@ -// -// HMMemberBasicCommand.m -// KCD -// -// Created by Hori,Masaki on 2014/02/23. -// Copyright (c) 2014年 Hori,Masaki. All rights reserved. -// - -#import "HMMemberBasicCommand.h" - -#import "KCD-Swift.h" - - -@implementation HMMemberBasicCommand -//+ (void)load -//{ -// static dispatch_once_t onceToken; -// dispatch_once(&onceToken, ^{ -// [HMJSONCommand registerClass:self]; -// }); -//} -+ (BOOL)canExcuteAPI:(NSString *)api -{ - if([api isEqualToString:@"/kcsapi/api_get_member/basic"]) return YES; - return NO; -} -- (NSString *)dataKey -{ - if([self.api isEqualToString:@"/kcsapi/api_get_member/basic"]) { - return @"api_data"; - } - return @"api_data.api_basic"; -} -- (void)execute -{ - NSDictionary *data = [self.json valueForKeyPath:self.dataKey]; - if(![data isKindOfClass:[NSDictionary class]]) { - [self log:@"api_data is NOT NSDictionary."]; - return; - } - - HMServerDataStore *serverDataStore = [HMServerDataStore oneTimeEditor]; - - NSError *error = nil; - NSArray *result = [serverDataStore objectsWithEntityName:@"Basic" predicate:nil error:&error]; - if(error) { - [self log:@"Fetch error: %@", error]; - return; - } - - NSManagedObject *object = nil; - if(!result || [result count] == 0) { - object = [serverDataStore insertNewObjectForEntityForName:@"Basic"]; - } else { - object = result[0]; - } - - [self registerElement:data - toObject:object]; -} -@end diff --git a/KCD/HMMemberBasicCommand.swift b/KCD/HMMemberBasicCommand.swift new file mode 100644 index 00000000..ad792a6b --- /dev/null +++ b/KCD/HMMemberBasicCommand.swift @@ -0,0 +1,47 @@ +// +// HMMemberBasicCommand.swift +// KCD +// +// Created by Hori,Masaki on 2017/01/13. +// Copyright © 2017年 Hori,Masaki. All rights reserved. +// + +import Cocoa + + +fileprivate enum InnerError: Error { + case canNotCreateBasic +} + +class HMMemberBasicCommand: HMJSONCommand { + override class func canExcuteAPI(_ api: String) -> Bool { + if api == "/kcsapi/api_get_member/basic" { return true } + return false + } + override var dataKey: String { + if api == "/kcsapi/api_get_member/basic" { + return "api_data" + } + return "api_data.api_basic" + } + override func execute() { + guard let j = json as? NSDictionary, + let data = j.value(forKeyPath: dataKey) as? [String:Any] + else { return print("json is wrong") } + + let store = HMServerDataStore.oneTimeEditor() + guard let basic = try? getBasic(from: store) + else { return print("Can not Get Basic") } + registerElement(data, to: basic) + } + + private func getBasic(from store: HMServerDataStore?) throws -> HMKCBasic { + if let b = try? store?.objects(withEntityName: "Basic", predicate: nil), + let basics = b as? [HMKCBasic], + let basic = basics.first + { return basic } + guard let basic = store?.insertNewObjectForEntity(forName: "Basic") as? HMKCBasic + else { throw InnerError.canNotCreateBasic } + return basic + } +} diff --git a/KCD/KCD-Bridging-Header.h b/KCD/KCD-Bridging-Header.h index e6838f72..6a02f762 100644 --- a/KCD/KCD-Bridging-Header.h +++ b/KCD/KCD-Bridging-Header.h @@ -32,7 +32,6 @@ #import "HMMemberKDockCommand.h" #import "HMMemberDeckCommand.h" #import "HMMemberMaterialCommand.h" -#import "HMMemberBasicCommand.h" #import "HMMapStartCommand.h" #import "HMBattleCommand.h" #import "HMMidnightBattleCommand.h" -- 2.11.0