OSDN Git Service

HMStoreCreateSlotItemHistoryCommandクラスをSwiftで書き換え
authormasakih <masakih@users.sourceforge.jp>
Sat, 24 Jan 2015 11:19:07 +0000 (20:19 +0900)
committermasakih <masakih@users.sourceforge.jp>
Sat, 24 Jan 2015 11:19:07 +0000 (20:19 +0900)
KCD.xcodeproj/project.pbxproj
KCD/HMStoreCreateSlotItemHistoryCommand.h [deleted file]
KCD/HMStoreCreateSlotItemHistoryCommand.m [deleted file]
KCD/HMStoreCreateSlotItemHistoryCommand.swift [new file with mode: 0644]
KCD/KCD-Bridging-Header.h

index 474de49..302f3e0 100644 (file)
@@ -8,7 +8,6 @@
 
 /* Begin PBXBuildFile section */
                F40B7E371A593EFC003DC5B4 /* HMNyukyoDockStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = F40B7E361A593EFC003DC5B4 /* HMNyukyoDockStatus.swift */; };
-               F4131ECF190F5C08004F7F9A /* HMStoreCreateSlotItemHistoryCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F4131ECE190F5C08004F7F9A /* HMStoreCreateSlotItemHistoryCommand.m */; };
                F4131EDE190FEBDB004F7F9A /* HMSlotItemWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F4131EE0190FEBDB004F7F9A /* HMSlotItemWindowController.xib */; };
                F4268031194D1B1A00B2C27F /* HMChangeHenseiCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F4268030194D1B1A00B2C27F /* HMChangeHenseiCommand.m */; };
                F43E67B718BE02A10087E5B6 /* STypeShortName.plist in Resources */ = {isa = PBXBuildFile; fileRef = F43E67B618BE02A10087E5B6 /* STypeShortName.plist */; };
@@ -86,6 +85,7 @@
                F4896DFB1A6D57C100B09967 /* HMNyukyoSpeedChangeCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4896DFA1A6D57C100B09967 /* HMNyukyoSpeedChangeCommand.swift */; };
                F4896DFD1A6FD8DF00B09967 /* HMDestroyItem2Command.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4896DFC1A6FD8DE00B09967 /* HMDestroyItem2Command.swift */; };
                F4896DFF1A7119F100B09967 /* HMRemodelSlotItemCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4896DFE1A7119F100B09967 /* HMRemodelSlotItemCommand.swift */; };
+               F4896E011A727AE600B09967 /* HMStoreCreateSlotItemHistoryCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4896E001A727AE600B09967 /* HMStoreCreateSlotItemHistoryCommand.swift */; };
                F494DC6A18C8BAB900AE97E4 /* HMPowerUpSupportViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F494DC6818C8BAB900AE97E4 /* HMPowerUpSupportViewController.xib */; };
                F4A2AF541A074DE40024BD9E /* HMScreenshotListWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F4A2AF561A074DE40024BD9E /* HMScreenshotListWindowController.xib */; };
                F4A2AF581A0930160024BD9E /* Quartz.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F4A2AF571A0930160024BD9E /* Quartz.framework */; };
 
 /* Begin PBXFileReference section */
                F40B7E361A593EFC003DC5B4 /* HMNyukyoDockStatus.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HMNyukyoDockStatus.swift; sourceTree = "<group>"; };
-               F4131ECD190F5C08004F7F9A /* HMStoreCreateSlotItemHistoryCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMStoreCreateSlotItemHistoryCommand.h; sourceTree = "<group>"; };
-               F4131ECE190F5C08004F7F9A /* HMStoreCreateSlotItemHistoryCommand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMStoreCreateSlotItemHistoryCommand.m; sourceTree = "<group>"; };
                F4131EDF190FEBDB004F7F9A /* ja */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ja; path = ja.lproj/HMSlotItemWindowController.xib; sourceTree = "<group>"; };
                F426802F194D1B1A00B2C27F /* HMChangeHenseiCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMChangeHenseiCommand.h; sourceTree = "<group>"; };
                F4268030194D1B1A00B2C27F /* HMChangeHenseiCommand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMChangeHenseiCommand.m; sourceTree = "<group>"; };
                F4896DFA1A6D57C100B09967 /* HMNyukyoSpeedChangeCommand.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HMNyukyoSpeedChangeCommand.swift; sourceTree = "<group>"; };
                F4896DFC1A6FD8DE00B09967 /* HMDestroyItem2Command.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HMDestroyItem2Command.swift; sourceTree = "<group>"; };
                F4896DFE1A7119F100B09967 /* HMRemodelSlotItemCommand.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HMRemodelSlotItemCommand.swift; sourceTree = "<group>"; };
+               F4896E001A727AE600B09967 /* HMStoreCreateSlotItemHistoryCommand.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HMStoreCreateSlotItemHistoryCommand.swift; sourceTree = "<group>"; };
                F494DC5618C23E4300AE97E4 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/MainMenu.strings; sourceTree = "<group>"; };
                F494DC5718C23E4300AE97E4 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/InfoPlist.strings; sourceTree = "<group>"; };
                F494DC5918C23E4400AE97E4 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/InfoPlist.strings; sourceTree = "<group>"; };
                                F4B3DC2818DF31400011B4FC /* HMCreateShipCommand.h */,
                                F4B3DC2918DF31400011B4FC /* HMCreateShipCommand.m */,
                                F4896DEA1A67D11000B09967 /* HMCreateSlotItemCommand.swift */,
-                               F4131ECD190F5C08004F7F9A /* HMStoreCreateSlotItemHistoryCommand.h */,
-                               F4131ECE190F5C08004F7F9A /* HMStoreCreateSlotItemHistoryCommand.m */,
+                               F4896E001A727AE600B09967 /* HMStoreCreateSlotItemHistoryCommand.swift */,
                                F4896DF81A6BCEB600B09967 /* HMUpdateSlotItemCommand.swift */,
                                F4896DFC1A6FD8DE00B09967 /* HMDestroyItem2Command.swift */,
                                F47C5C211A63F2A800C276B5 /* HMDestroyShipCommand.swift */,
                                F46F104118A9B85E0063E503 /* HMJSONNode.m in Sources */,
                                F47C5C281A640C6700C276B5 /* HMBattleCommand.swift in Sources */,
                                F454F7831A261844003042DD /* HMFleetInformation.m in Sources */,
-                               F4131ECF190F5C08004F7F9A /* HMStoreCreateSlotItemHistoryCommand.m in Sources */,
                                F4AA05FB192B92C800844688 /* Temporary.xcdatamodeld in Sources */,
                                F477E2511A55A10800493198 /* HMTemporaryDataStore.swift in Sources */,
                                F4513EF618B9F29800073552 /* HMMemberShipCommand.m in Sources */,
+                               F4896E011A727AE600B09967 /* HMStoreCreateSlotItemHistoryCommand.swift in Sources */,
                                F4C1190818A746EB005D5B25 /* HMJSONTracker.m in Sources */,
                                F4B3DC4718EEEB920011B4FC /* HMCompositMapCommand.m in Sources */,
                                F4C118FB18A67B1C005D5B25 /* CanonicalRequest.m in Sources */,
diff --git a/KCD/HMStoreCreateSlotItemHistoryCommand.h b/KCD/HMStoreCreateSlotItemHistoryCommand.h
deleted file mode 100644 (file)
index 6d47b77..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-//
-//  HMStoreCreateSlotItemHistoryCommand.h
-//  KCD
-//
-//  Created by Hori,Masaki on 2014/04/29.
-//  Copyright (c) 2014年 Hori,Masaki. All rights reserved.
-//
-
-#import "HMJSONCommand.h"
-
-@interface HMStoreCreateSlotItemHistoryCommand : HMJSONCommand
-
-@end
diff --git a/KCD/HMStoreCreateSlotItemHistoryCommand.m b/KCD/HMStoreCreateSlotItemHistoryCommand.m
deleted file mode 100644 (file)
index 54a180c..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-//
-//  HMStoreCreateSlotItemHistoryCommand.m
-//  KCD
-//
-//  Created by Hori,Masaki on 2014/04/29.
-//  Copyright (c) 2014年 Hori,Masaki. All rights reserved.
-//
-
-#import "HMStoreCreateSlotItemHistoryCommand.h"
-
-#import "KCD-Swift.h"
-
-@implementation HMStoreCreateSlotItemHistoryCommand
-
-- (void)execute
-{
-       id data = [self.json valueForKey:@"api_data"];
-       BOOL created = [[data valueForKey:@"api_create_flag"] boolValue];
-       NSString *name = nil;
-       NSNumber *numberOfUsedKaihatuSizai = nil;
-       
-       HMServerDataStore *serverDataStore = [HMServerDataStore oneTimeEditor];
-       
-       if(created) {
-               NSNumber *slotItemID = [data valueForKeyPath:@"api_slot_item.api_slotitem_id"];
-               NSArray *array = [serverDataStore objectsWithEntityName:@"MasterSlotItem"
-                                                                                               sortDescriptors:nil
-                                                                                                         predicate:[NSPredicate predicateWithFormat:@"id = %@", slotItemID]
-                                                                                                                 error:NULL];
-               if([array count] == 0) {
-                       NSLog(@"MasterSlotItem data is invalid or api_slotitem_id is invalid.");
-                       return;
-               }
-               name = [array[0] valueForKey:@"name"];
-               numberOfUsedKaihatuSizai = @1;
-       } else {
-               name = NSLocalizedString(@"fail to develop", @"");
-               numberOfUsedKaihatuSizai = @0;
-       }
-       
-       // Deck -> FlagShip
-       NSArray *array = [serverDataStore objectsWithEntityName:@"Deck"
-                                                                                       sortDescriptors:nil
-                                                                                                 predicate:[NSPredicate predicateWithFormat:@"id = 1"]
-                                                                                                         error:NULL];
-       if([array count] == 0) {
-               NSLog(@"Deck data is invalid.");
-               return;
-       }
-       id deck = array[0];
-       id flagShipID = [deck valueForKey:@"ship_0"];
-       array = [serverDataStore objectsWithEntityName:@"Ship"
-                                                                  sortDescriptors:nil
-                                                                                predicate:[NSPredicate predicateWithFormat:@"id = %@", flagShipID]
-                                                                                        error:NULL];
-       if([array count] == 0) {
-               NSLog(@"Ship data is invalid or ship_0 is invalid.");
-               return;
-       }
-       id flagShip = array[0];
-       NSNumber *flagShipLv = [flagShip valueForKey:@"lv"];
-       NSString *flagShipName = [flagShip valueForKeyPath:@"master_ship.name"];
-       
-       // Basic -> level
-       array = [serverDataStore objectsWithEntityName:@"Basic"
-                                                                  sortDescriptors:nil
-                                                                                predicate:nil
-                                                                                        error:NULL];
-       if([array count] == 0) {
-               NSLog(@"Basic data is invalid.");
-               return;
-       }
-       id basic = array[0];
-       
-       HMLocalDataStore *lds = [HMLocalDataStore oneTimeEditor];
-       HMKaihatuHistory *newObejct = [NSEntityDescription insertNewObjectForEntityForName:@"KaihatuHistory"
-                                                                                                                               inManagedObjectContext:[lds managedObjectContext]];
-       newObejct.name = name;
-       newObejct.fuel = @([[self.arguments valueForKey:@"api_item1"] integerValue]);
-       newObejct.bull = @([[self.arguments valueForKey:@"api_item2"] integerValue]);
-       newObejct.steel = @([[self.arguments valueForKey:@"api_item3"] integerValue]);
-       newObejct.bauxite = @([[self.arguments valueForKey:@"api_item4"] integerValue]);
-       newObejct.kaihatusizai = numberOfUsedKaihatuSizai;
-       newObejct.flagShipLv = flagShipLv;
-       newObejct.flagShipName = flagShipName;
-       newObejct.commanderLv = [basic valueForKey:@"level"];
-       newObejct.date = [NSDate dateWithTimeIntervalSinceNow:0];
-       
-       [lds saveAction:nil];
-}
-
-@end
diff --git a/KCD/HMStoreCreateSlotItemHistoryCommand.swift b/KCD/HMStoreCreateSlotItemHistoryCommand.swift
new file mode 100644 (file)
index 0000000..5473979
--- /dev/null
@@ -0,0 +1,124 @@
+//
+//  HMStoreCreateSlotItemHistoryCommand.swift
+//  KCD
+//
+//  Created by Hori,Masaki on 2015/01/23.
+//  Copyright (c) 2015年 Hori,Masaki. All rights reserved.
+//
+
+import Cocoa
+
+class HMStoreCreateSlotItemHistoryCommand: HMJSONCommand {
+       override func execute() {
+               if let data = json[dataKey] as? NSDictionary {
+                       let store = HMServerDataStore.oneTimeEditor()
+                       var error: NSError? = nil
+                       
+                       var name = NSLocalizedString("fail to develop", comment: "")
+                       var numberOfUsedKaihatuSizai = 0
+                       var flagShipLv: NSNumber? = nil
+                       var flagShipName: String? = nil
+                       
+                       // name and numberOfUsedKaihatuSizai
+                       if let created = data["api_create_flag"] as? NSNumber {
+                               if created.boolValue {
+                                       if let slotItemID = data["api_slot_item"]?["api_slotitem_id"] as? NSNumber {
+                                               let predicate = NSPredicate(format: "id = \(slotItemID)")
+                                               let array = store.objectsWithEntityName("MasterSlotItem",
+                                                       sortDescriptors: nil,
+                                                       predicate: predicate,
+                                                       error: &error)
+                                               if array.count == 0 {
+                                                       NSLog("MasterSlotItem data is invalid or api_slotitem_id is invalid.")
+                                                       if error != nil {
+                                                               NSLog("Error: \(error!)")
+                                                       }
+                                                       return
+                                               }
+                                               if let master = array[0] as? HMKCMasterSlotItemObject {
+                                                       name = master.name
+                                                       numberOfUsedKaihatuSizai = 1
+                                               }
+                                       }
+                               }
+                       }
+                       
+                       // Deck -> FlagShip
+                       error = nil
+                       let predicate = NSPredicate(format: "id = 1")
+                       let decks = store.objectsWithEntityName("Deck",
+                               sortDescriptors: nil,
+                               predicate: predicate,
+                               error: &error)
+                       if decks.count == 0 {
+                               NSLog("Deck data is invalid.")
+                               if error != nil {
+                                       NSLog("Error: \(error!)")
+                               }
+                               return
+                       }
+                       if let deck = decks[0] as? NSManagedObject {
+                               if let flagShipID = deck.valueForKey("ship_0") as? NSNumber {
+                                       error = nil
+                                       let shipPredicate = NSPredicate(format: "id = \(flagShipID)")
+                                       let shipArray = store.objectsWithEntityName("Ship",
+                                               sortDescriptors: nil,
+                                               predicate: shipPredicate,
+                                               error: &error)
+                                       if shipArray.count == 0 {
+                                               NSLog("Ship data is invalid or ship_0 is invalid.")
+                                               if error != nil {
+                                                       NSLog("Error: \(error!)")
+                                               }
+                                               return
+                                       }
+                                       if let flagShip = shipArray[0] as? HMKCShipObject {
+                                               flagShipLv = flagShip.lv
+                                               flagShipName = flagShip.name
+                                       }
+                               }
+                       }
+                       
+                       // Basic -> level
+                       error = nil
+                       let basicArray = store.objectsWithEntityName("Basic",
+                               sortDescriptors: nil,
+                               predicate: nil,
+                               error: &error)
+                       if basicArray.count == 0 {
+                               NSLog("Basic data is invalid.")
+                               if error != nil {
+                                       NSLog("Error: \(error!)")
+                               }
+                               return
+                       }
+                       let commanderLv = basicArray[0].valueForKey("level") as NSNumber
+                       
+                       // create and insert KaihatuHistory
+                       let lds = HMLocalDataStore.oneTimeEditor()
+                       let newObject = NSEntityDescription.insertNewObjectForEntityForName("KaihatuHistory",
+                               inManagedObjectContext: lds.managedObjectContext!) as HMKaihatuHistory
+                       
+                       newObject.name = name
+                       newObject.kaihatusizai = numberOfUsedKaihatuSizai
+                       newObject.flagShipLv = flagShipLv!
+                       newObject.flagShipName = flagShipName!
+                       newObject.commanderLv = commanderLv
+                       newObject.date = NSDate(timeIntervalSinceNow: 0)
+                       if let fuel = arguments["api_item1"]?.integerValue {
+                               newObject.fuel = fuel
+                       }
+                       if let bull = arguments["api_item2"]?.integerValue {
+                               newObject.bull = bull
+                       }
+                       if let steel = arguments["api_item3"]?.integerValue {
+                               newObject.steel = steel
+                       }
+                       if let bauxite = arguments["api_item4"]?.integerValue {
+                               newObject.bauxite = bauxite
+                       }
+                       
+                       lds.saveAction(nil)
+               }
+       }
+}
index 67619ea..40d6d34 100644 (file)
@@ -18,7 +18,6 @@
 #import "HMMemberMaterialCommand.h"
 #import "HMMemberBasicCommand.h"
 #import "HMCalculateDamageCommand.h"
-#import "HMStoreCreateSlotItemHistoryCommand.h"
 
 
 @interface NSFileManager (KCDExtension)