From 1b67347aed213d8ad92d3fac7ec6d09dda6c0470 Mon Sep 17 00:00:00 2001 From: masakih Date: Tue, 27 Dec 2016 00:20:17 +0900 Subject: [PATCH] =?utf8?q?HMDocksViewController=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 | 6 - KCD/HMBroserWindowController.m | 1 - KCD/HMDocksViewController.h | 42 ------ KCD/HMDocksViewController.m | 280 ---------------------------------------- KCD/HMDocksViewController.swift | 89 +++++++++++-- KCD/KCD-Bridging-Header.h | 1 + 6 files changed, 81 insertions(+), 338 deletions(-) delete mode 100644 KCD/HMDocksViewController.h delete mode 100644 KCD/HMDocksViewController.m diff --git a/KCD.xcodeproj/project.pbxproj b/KCD.xcodeproj/project.pbxproj index dff86d6f..265d5598 100644 --- a/KCD.xcodeproj/project.pbxproj +++ b/KCD.xcodeproj/project.pbxproj @@ -63,7 +63,6 @@ F44AB23E19E824D700F217AF /* HMKCSlotItemObject.m in Sources */ = {isa = PBXBuildFile; fileRef = F44AB23D19E824D700F217AF /* HMKCSlotItemObject.m */; }; F44AB24119E8252600F217AF /* HMKCSlotItemObject+Extensions.m in Sources */ = {isa = PBXBuildFile; fileRef = F44AB24019E8252600F217AF /* HMKCSlotItemObject+Extensions.m */; }; F4513EDD18B619B600073552 /* HMCoreDataManager.m in Sources */ = {isa = PBXBuildFile; fileRef = F4513EDC18B619B600073552 /* HMCoreDataManager.m */; }; - F4513EE418B635EA00073552 /* HMDocksViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F4513EE218B635EA00073552 /* HMDocksViewController.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 */; }; @@ -427,8 +426,6 @@ F44AB24019E8252600F217AF /* HMKCSlotItemObject+Extensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "HMKCSlotItemObject+Extensions.m"; 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 = ""; }; - F4513EE118B635EA00073552 /* HMDocksViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMDocksViewController.h; sourceTree = ""; }; - F4513EE218B635EA00073552 /* HMDocksViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMDocksViewController.m; sourceTree = ""; }; F4513EE618B77A5300073552 /* HMMemberKDockCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMMemberKDockCommand.h; sourceTree = ""; }; F4513EE718B77A5300073552 /* HMMemberKDockCommand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMMemberKDockCommand.m; sourceTree = ""; }; F4513EE918B7900A00073552 /* HMMemberDeckCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMMemberDeckCommand.h; sourceTree = ""; }; @@ -1366,8 +1363,6 @@ F4F388BA1C13D63B00508549 /* HMGameViewController.h */, F4F388BB1C13D63B00508549 /* HMGameViewController.m */, F4C668621C54517500601AFB /* HMGameViewController.xib */, - F4513EE118B635EA00073552 /* HMDocksViewController.h */, - F4513EE218B635EA00073552 /* HMDocksViewController.m */, F45FBB701E101492000E72B9 /* HMDocksViewController.swift */, F4B3DC3E18E5C87D0011B4FC /* HMDocksViewController.xib */, F4D05BD81E0F748900688D66 /* HMQuestListViewController.swift */, @@ -1915,7 +1910,6 @@ F43F3D4C1A34AC8000D6DAF7 /* HMKCMasterShipObject.m in Sources */, F4268031194D1B1A00B2C27F /* HMChangeHenseiCommand.m in Sources */, F4BEEFE11B0B6326004702B8 /* HMDummyShipCommand.m in Sources */, - F4513EE418B635EA00073552 /* HMDocksViewController.m in Sources */, F42185041DF43D0700256590 /* HMAirbasePlaneStateTransformer.m in Sources */, F46F45BF1CFF0BEE00EB7F4D /* HMSlotDepriveCommand.m in Sources */, F46F45C21CFF0CFF00EB7F4D /* HMSlotDepriveUnsetCommand.m in Sources */, diff --git a/KCD/HMBroserWindowController.m b/KCD/HMBroserWindowController.m index 730a944d..de757158 100644 --- a/KCD/HMBroserWindowController.m +++ b/KCD/HMBroserWindowController.m @@ -12,7 +12,6 @@ #import "HMAppDelegate.h" #import "HMUserDefaults.h" -#import "HMDocksViewController.h" #import "HMGameViewController.h" #import "HMCombinedCommand.h" #import "HMFleetViewController.h" diff --git a/KCD/HMDocksViewController.h b/KCD/HMDocksViewController.h deleted file mode 100644 index 330d80b5..00000000 --- a/KCD/HMDocksViewController.h +++ /dev/null @@ -1,42 +0,0 @@ -// -// HMDocksViewController.h -// KCD -// -// Created by Hori,Masaki on 2014/02/20. -// Copyright (c) 2014年 Hori,Masaki. All rights reserved. -// - -#import - -#import "HMMainTabVIewItemViewController.h" - -@interface HMDocksViewController : HMMainTabVIewItemViewController - -@property (readonly) NSManagedObjectContext *managedObjectContext; - -@property (nonatomic, strong) NSNumber *nDock1Time; -@property (nonatomic, strong) NSNumber *nDock2Time; -@property (nonatomic, strong) NSNumber *nDock3Time; -@property (nonatomic, strong) NSNumber *nDock4Time; - -@property (readonly) NSString *nDock1ShipName; -@property (readonly) NSString *nDock2ShipName; -@property (readonly) NSString *nDock3ShipName; -@property (readonly) NSString *nDock4ShipName; - - -@property (nonatomic, strong) NSNumber *kDock1Time; -@property (nonatomic, strong) NSNumber *kDock2Time; -@property (nonatomic, strong) NSNumber *kDock3Time; -@property (nonatomic, strong) NSNumber *kDock4Time; - - -@property (readonly) NSNumber *deck2Time; -@property (readonly) NSNumber *deck3Time; -@property (readonly) NSNumber *deck4Time; - -@property (readonly) NSString *mission2Name; -@property (readonly) NSString *mission3Name; -@property (readonly) NSString *mission4Name; - -@end diff --git a/KCD/HMDocksViewController.m b/KCD/HMDocksViewController.m deleted file mode 100644 index 724d6460..00000000 --- a/KCD/HMDocksViewController.m +++ /dev/null @@ -1,280 +0,0 @@ -// -// HMDocksViewController.m -// KCD -// -// Created by Hori,Masaki on 2014/02/20. -// Copyright (c) 2014年 Hori,Masaki. All rights reserved. -// - -#import "HMDocksViewController.h" - -#import "KCD-Swift.h" - - -#import "HMAppDelegate.h" - -#import "HMServerDataStore.h" - -#import "HMMissionStatus.h" -#import "HMNyukyoDockStatus.h" -#import "HMKenzoDockStatus.h" - -#import "HMTemporaryDataStore.h" - - -@interface HMDocksViewController () - -@property (nonatomic, strong) HMMissionStatus *mission2Status; -@property (nonatomic, strong) HMMissionStatus *mission3Status; -@property (nonatomic, strong) HMMissionStatus *mission4Status; - -@property (nonatomic, strong) HMNyukyoDockStatus *ndock1Status; -@property (nonatomic, strong) HMNyukyoDockStatus *ndock2Status; -@property (nonatomic, strong) HMNyukyoDockStatus *ndock3Status; -@property (nonatomic, strong) HMNyukyoDockStatus *ndock4Status; - -@property (nonatomic, strong) HMKenzoDockStatus *kdock1Status; -@property (nonatomic, strong) HMKenzoDockStatus *kdock2Status; -@property (nonatomic, strong) HMKenzoDockStatus *kdock3Status; -@property (nonatomic, strong) HMKenzoDockStatus *kdock4Status; - - -@property (readonly) NSManagedObjectContext *battleManagedObjectController; -@property (nonatomic, strong) IBOutlet NSObjectController *battleContoller; -@property (readonly) NSManagedObject *battle; - -@property (nonatomic, weak) IBOutlet NSView *questListViewPlaceholder; - -@property (nonatomic, strong) HMQuestListViewController *questListViewController; - - -@property (nonatomic, weak) IBOutlet NSTextField *cellNumberField; -@property (readonly) NSNumber *cellNumber; - -@end - -@implementation HMDocksViewController - - -- (NSManagedObjectContext *)managedObjectContext -{ - return [HMServerDataStore defaultManager].managedObjectContext; -} - -- (id)init -{ - self = [super initWithNibName:NSStringFromClass([self class]) bundle:nil]; - if(self) { - _mission2Status = [[HMMissionStatus alloc] initWithDeckNumber:2]; - _mission2Status.managedObjectContext = self.managedObjectContext; - [self bind:@"deck2Time" toObject:self.mission2Status withKeyPath:@"time" options:nil]; - [self bind:@"mission2Name" toObject:self.mission2Status withKeyPath:@"name" options:nil]; - - _mission3Status = [[HMMissionStatus alloc] initWithDeckNumber:3]; - _mission3Status.managedObjectContext = self.managedObjectContext; - [self bind:@"deck3Time" toObject:self.mission3Status withKeyPath:@"time" options:nil]; - [self bind:@"mission3Name" toObject:self.mission3Status withKeyPath:@"name" options:nil]; - - _mission4Status = [[HMMissionStatus alloc] initWithDeckNumber:4]; - _mission4Status.managedObjectContext = self.managedObjectContext; - [self bind:@"deck4Time" toObject:self.mission4Status withKeyPath:@"time" options:nil]; - [self bind:@"mission4Name" toObject:self.mission4Status withKeyPath:@"name" options:nil]; - - - // - _ndock1Status = [[HMNyukyoDockStatus alloc] initWithDockNumber:1]; - _ndock1Status.managedObjectContext = self.managedObjectContext; - [self bind:@"nDock1Time" toObject:self.ndock1Status withKeyPath:@"time" options:nil]; - [self bind:@"nDock1ShipName" toObject:self.ndock1Status withKeyPath:@"name" options:nil]; - - _ndock2Status = [[HMNyukyoDockStatus alloc] initWithDockNumber:2]; - _ndock2Status.managedObjectContext = self.managedObjectContext; - [self bind:@"nDock2Time" toObject:self.ndock2Status withKeyPath:@"time" options:nil]; - [self bind:@"nDock2ShipName" toObject:self.ndock2Status withKeyPath:@"name" options:nil]; - - _ndock3Status = [[HMNyukyoDockStatus alloc] initWithDockNumber:3]; - _ndock3Status.managedObjectContext = self.managedObjectContext; - [self bind:@"nDock3Time" toObject:self.ndock3Status withKeyPath:@"time" options:nil]; - [self bind:@"nDock3ShipName" toObject:self.ndock3Status withKeyPath:@"name" options:nil]; - - _ndock4Status = [[HMNyukyoDockStatus alloc] initWithDockNumber:4]; - _ndock4Status.managedObjectContext = self.managedObjectContext; - [self bind:@"nDock4Time" toObject:self.ndock4Status withKeyPath:@"time" options:nil]; - [self bind:@"nDock4ShipName" toObject:self.ndock4Status withKeyPath:@"name" options:nil]; - - - // - _kdock1Status = [[HMKenzoDockStatus alloc] initWithDockNumber:1]; - _kdock1Status.managedObjectContext = self.managedObjectContext; - [self bind:@"kDock1Time" toObject:self.kdock1Status withKeyPath:@"time" options:nil]; - - _kdock2Status = [[HMKenzoDockStatus alloc] initWithDockNumber:2]; - _kdock2Status.managedObjectContext = self.managedObjectContext; - [self bind:@"kDock2Time" toObject:self.kdock2Status withKeyPath:@"time" options:nil]; - - _kdock3Status = [[HMKenzoDockStatus alloc] initWithDockNumber:3]; - _kdock3Status.managedObjectContext = self.managedObjectContext; - [self bind:@"kDock3Time" toObject:self.kdock3Status withKeyPath:@"time" options:nil]; - - _kdock4Status = [[HMKenzoDockStatus alloc] initWithDockNumber:4]; - _kdock4Status.managedObjectContext = self.managedObjectContext; - [self bind:@"kDock4Time" toObject:self.kdock4Status withKeyPath:@"time" options:nil]; - - } - return self; -} - -- (void)awakeFromNib -{ - HMAppDelegate *appDelegate = [[NSApplication sharedApplication] delegate]; - [appDelegate addCounterUpdateBlock:^{ - // 入渠ドック - [self.ndock1Status update]; - [self.ndock2Status update]; - [self.ndock3Status update]; - [self.ndock4Status update]; - - // 建造ドック - [self.kdock1Status update]; - [self.kdock2Status update]; - [self.kdock3Status update]; - [self.kdock4Status update]; - - // 遠征 - [self.mission2Status update]; - [self.mission3Status update]; - [self.mission4Status update]; - }]; - - _questListViewController = [HMQuestListViewController new]; - - [self.questListViewController.view setFrame:[self.questListViewPlaceholder frame]]; - [self.questListViewController.view setAutoresizingMask:[self.questListViewPlaceholder autoresizingMask]]; - [[self.questListViewPlaceholder superview] replaceSubview:self.questListViewPlaceholder with:self.questListViewController.view]; - - // - [self.battleContoller addObserver:self - forKeyPath:@"selection" - options:0 - context:NULL]; - [self.battleContoller addObserver:self - forKeyPath:@"selection.no" - options:0 - context:NULL]; - [self.battleContoller addObserver:self - forKeyPath:@"content.battleCell" - options:0 - context:NULL]; - -#ifdef DEBUG - self.cellNumberField.hidden = NO; -#endif -} - -- (NSManagedObjectContext *)battleManagedObjectController -{ - return [[HMTemporaryDataStore defaultManager] managedObjectContext]; -} -- (NSManagedObject *)battle -{ - HMTemporaryDataStore *store = [HMTemporaryDataStore defaultManager]; - NSError *error = nil; - NSArray *array = [store objectsWithEntityName:@"Battle" predicate:nil error:&error]; - if(error) { - NSLog(@"%s error: %@", __PRETTY_FUNCTION__, error); - } - return array.count > 0 ? array[0] : nil; -} - -- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context -{ - if([keyPath isEqualToString:@"selection"] || [keyPath isEqualToString:@"content.battleCell"] ) { - [self willChangeValueForKey:@"sortieString"]; - [self didChangeValueForKey:@"sortieString"]; - return; - } - if([keyPath isEqualToString:@"selection.no"]) { - [self willChangeValueForKey:@"cellNumber"]; - [self didChangeValueForKey:@"cellNumber"]; - return; - } - - return [super observeValueForKeyPath:keyPath ofObject:object change:change context:context]; -} - -- (NSString *)sortieString -{ - NSString *result = nil; - if(self.fleetName && self.areaName && self.areaNumber) { - if(self.battleCellNumber.integerValue == 0) { - NSString *format = NSLocalizedString(@"%@ in sortie into %@ (%@)", @"Sortie"); - result = [NSString stringWithFormat:format, self.fleetName, self.areaName, self.areaNumber]; - } else if(self.isBossCell) { - NSString *format = NSLocalizedString(@"%@ battle against the enemy main fleet at %@ war zone in %@ (%@) now", @"Sortie"); - result = [NSString stringWithFormat:format, self.fleetName, self.battleCellNumber, self.areaName, self.areaNumber]; - } else { - NSString *format = NSLocalizedString(@"%@ battle at %@ war zone in %@ (%@) now", @"Sortie"); - result = [NSString stringWithFormat:format, self.fleetName, self.battleCellNumber, self.areaName, self.areaNumber]; - } - } - return result; -} - -- (NSString *)fleetName -{ - HMServerDataStore *store = [HMServerDataStore defaultManager]; - - NSError *error = nil; - id deckId = [self.battleContoller valueForKeyPath:@"content.deckId"]; - NSArray *array = [store objectsWithEntityName:@"Deck" - error:&error - predicateFormat:@"id = %@", deckId]; - if(error) { - NSLog(@"%s error: %@", __PRETTY_FUNCTION__, error); - } - if(array.count == 0) return nil; - - return [NSString stringWithFormat:@"%@", [array[0] valueForKey:@"name"]]; -} -- (NSString *)areaNumber -{ - id mapArea = [self.battleContoller valueForKeyPath:@"content.mapArea"]; - if([mapArea integerValue] > 10) { - mapArea = @"E"; - } - return [NSString stringWithFormat:@"%@-%@", - mapArea, - [self.battleContoller valueForKeyPath:@"content.mapInfo"]]; -} -- (NSString *)areaName -{ - HMServerDataStore *store = [HMServerDataStore defaultManager]; - - NSError *error = nil; - id mapAreaId = [self.battleContoller valueForKeyPath:@"content.mapArea"]; - id mapInfoId = [self.battleContoller valueForKeyPath:@"content.mapInfo"]; - NSArray *array = [store objectsWithEntityName:@"MasterMapInfo" - error:&error - predicateFormat:@"maparea_id = %@ AND %K = %@", mapAreaId, @"no", mapInfoId]; - if(error) { - NSLog(@"%s error: %@", __PRETTY_FUNCTION__, error); - } - if(array.count == 0) return nil; - - return [NSString stringWithFormat:@"%@", [array[0] valueForKey:@"name"]]; -} - -- (NSNumber *)cellNumber -{ - return [self.battleContoller valueForKeyPath:@"content.no"]; -} - -- (NSNumber *)battleCellNumber -{ - return [self.battleContoller valueForKeyPath:@"content.battleCell"]; -} -- (BOOL)isBossCell -{ - return [[self.battleContoller valueForKeyPath:@"content.isBossCell"] boolValue]; -} -@end diff --git a/KCD/HMDocksViewController.swift b/KCD/HMDocksViewController.swift index 3422a094..8ef701b6 100644 --- a/KCD/HMDocksViewController.swift +++ b/KCD/HMDocksViewController.swift @@ -65,6 +65,30 @@ class HMDocksViewController: HMMainTabVIewItemViewController { let battleManagedObjectController = HMTemporaryDataStore.default().managedObjectContext let questListViewController = HMQuestListViewController() + var nDock1Time: NSNumber? = nil + var nDock2Time: NSNumber? = nil + var nDock3Time: NSNumber? = nil + var nDock4Time: NSNumber? = nil + + var nDock1ShipName: String? = nil + var nDock2ShipName: String? = nil + var nDock3ShipName: String? = nil + var nDock4ShipName: String? = nil + + var kDock1Time: NSNumber? = nil + var kDock2Time: NSNumber? = nil + var kDock3Time: NSNumber? = nil + var kDock4Time: NSNumber? = nil + + var deck2Time: NSNumber? = nil + var deck3Time: NSNumber? = nil + var deck4Time: NSNumber? = nil + + var mission2Name: String? = nil + var mission3Name: String? = nil + var mission4Name: String? = nil + + let missionStates: [HMMissionStatus] = { return [2, 3, 4].map { return HMMissionStatus(deckNumber: $0) @@ -99,26 +123,26 @@ class HMDocksViewController: HMMainTabVIewItemViewController { var cellNumber: Int { get { - guard let number = battleContoller.value(forKey: "content.no") as? Int else { return 0 } + guard let number = battleContoller.value(forKeyPath: "content.no") as? Int else { return 0 } return number } } var battleCellNumber: Int { get { - guard let number = battleContoller.value(forKey: "content.battleCell") as? Int else { return 0 } + guard let number = battleContoller.value(forKeyPath: "content.battleCell") as? Int else { return 0 } return number } } var isBossCell: Bool { get { - guard let number = battleContoller.value(forKey: "content.isBossCell") as? Bool else { return false } + guard let number = battleContoller.value(forKeyPath: "content.isBossCell") as? Bool else { return false } return number } } var fleetName: String? { get { guard let store = HMServerDataStore.default() else { return nil } - guard let deckId = battleContoller.value(forKey: "content.deckId") as? Int else { return nil } + guard let deckId = battleContoller.value(forKeyPath: "content.deckId") as? Int else { return nil } let predicate = NSPredicate(format: "id = %@", argumentArray: [deckId]) guard let c = try? store.objects(withEntityName: "Deck", predicate: predicate) else { return nil } guard let decks = c as? [HMKCDeck] else { return nil } @@ -128,11 +152,58 @@ class HMDocksViewController: HMMainTabVIewItemViewController { } var areaNumber: String? { get { - + let mapArea: String = { + guard let mapArea = battleContoller.value(forKeyPath: "content.mapArea") as? Int else { return "" } + if mapArea > 10 { return "E" } + return "\(mapArea)" + }() + guard mapArea != "" else { return nil } + guard let mapInfo = battleContoller.value(forKeyPath: "content.mapInfo") as? Int else { return "" } + return "\(mapArea)-\(mapInfo)" } } + var areaName: String? { + guard let mapArea = battleContoller.value(forKeyPath: "content.mapArea") as? Int else { return nil } + guard let mapInfo = battleContoller.value(forKeyPath: "content.mapInfo") as? Int else { return nil } + + let store = HMServerDataStore.default() + let predicate = NSPredicate(format: "maparea_id = %@ AND %K = %@", argumentArray: [mapArea, "no", mapInfo]) + guard let m = try? store?.objects(withEntityName: "MasterMapInfo", predicate: predicate) else { return nil } + guard let mapInfos = m as? [HMKCMasterMapInfo] else { return nil } + guard mapInfos.count != 0 else { return nil } + + return mapInfos[0].name + } + var sortieString: String? { + guard let fleetName = self.fleetName else { return nil } + guard let areaName = self.areaName else { return nil } + guard let areaNumber = self.areaNumber else { return nil } + if battleCellNumber == 0 { + let format = NSLocalizedString("%@ in sortie into %@ (%@)", comment: "Sortie") + return String(format: format, arguments: [fleetName, areaName, areaNumber]) + } + if isBossCell { + let format = NSLocalizedString("%@ battle against the enemy main fleet at %@ war zone in %@ (%@) now", comment: "Sortie") + return String(format: format, arguments: [fleetName, battleCellNumber as NSNumber, areaName, areaNumber]) + } + let format = NSLocalizedString("%@ battle at %@ war zone in %@ (%@) now", comment: "Sortie") + return String(format: format, arguments: [fleetName, battleCellNumber as NSNumber, areaName, areaNumber]) + } - + override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) { + if keyPath == "selection" || keyPath == "content.battleCell" { + willChangeValue(forKey: "sortieString") + didChangeValue(forKey: "sortieString") + return + } + if keyPath == "selection.no" { + willChangeValue(forKey: "cellNumber") + didChangeValue(forKey: "cellNumber") + return + } + + super.observeValue(forKeyPath: keyPath, of: object, change: change, context: context) + } private func setupStatus() { let missionKeys: [(String, String)] = [ @@ -154,14 +225,14 @@ class HMDocksViewController: HMMainTabVIewItemViewController { ] zip(ndockStatus, ndockKeys).forEach { $0.0.managedObjectContext = managedObjectContext - bind($0.1.0, to: self, withKeyPath: "time", options: nil) - bind($0.1.1, to: self, withKeyPath: "name", options: nil) + bind($0.1.0, to: $0.0, withKeyPath: "time", options: nil) + bind($0.1.1, to: $0.0, withKeyPath: "name", options: nil) } let kdockKeys: [String] = ["kDock1Time", "kDock2Time", "kDock3Time", "kDock4Time"] zip(kdockStatus, kdockKeys).forEach { $0.0.managedObjectContext = managedObjectContext - bind($0.1, to: self, withKeyPath: "time", options: nil) + bind($0.1, to: $0.0, withKeyPath: "time", options: nil) } } diff --git a/KCD/KCD-Bridging-Header.h b/KCD/KCD-Bridging-Header.h index bbcca1a1..95f88106 100644 --- a/KCD/KCD-Bridging-Header.h +++ b/KCD/KCD-Bridging-Header.h @@ -37,6 +37,7 @@ #import "HMKCShipObject+Extensions.h" +#import "HMKCMasterMapInfo.h" #import "HMKaihatuHistory.h" #import "HMKenzoHistory.h" -- 2.11.0