@property (nonatomic, strong) NSNumber *kDock4Time;
+@property (nonatomic, strong) IBOutlet NSObjectController *deck2;
+@property (nonatomic, strong) IBOutlet NSObjectController *deck3;
+@property (nonatomic, strong) IBOutlet NSObjectController *deck4;
+
+@property (nonatomic, strong) NSNumber *deck2Time;
+@property (nonatomic, strong) NSNumber *deck3Time;
+@property (nonatomic, strong) NSNumber *deck4Time;
+
@end
#import "HMCoreDataManager.h"
@interface HMDocksViewController ()
+@property BOOL deck2Flag;
+@property BOOL deck3Flag;
+@property BOOL deck4Flag;
+
@end
NSNumber *compTimeValue = [nDock valueForKeyPath:@"selection.complete_time"];
if(![compTimeValue isKindOfClass:[NSNumber class]]) return nil;
+// if([compTimeValue isEqualToNumber:@0]) return nil;
+
+ NSTimeInterval compTime = (NSUInteger)([compTimeValue doubleValue] / 1000.0);
+ NSDate *now = [NSDate dateWithTimeIntervalSinceNow:0];
+ NSTimeInterval diff = compTime - [now timeIntervalSince1970];
+
+ if(diff < 0) {
+ return @( - [[NSTimeZone systemTimeZone] secondsFromGMT]);
+ } else {
+ return @(diff - [[NSTimeZone systemTimeZone] secondsFromGMT]);
+ }
+}
+
+- (NSString *)mission2Name
+{
+ NSArray *array = [self.deck2 valueForKeyPath:@"selection.missionName.name"];
+ if(![array isKindOfClass:[NSArray class]] || [array count] == 0) {
+ self.deck2Flag = NO;
+ return nil;
+ }
+
+ NSString *name = array[0];
+ if(name && !self.deck2Flag) {
+ self.deck2Flag = YES;
+ }
+ return name;
+}
+- (NSString *)mission3Name
+{
+ NSArray *array = [self.deck3 valueForKeyPath:@"selection.missionName.name"];
+ if(![array isKindOfClass:[NSArray class]] || [array count] == 0) {
+ self.deck3Flag = NO;
+ return nil;
+ }
+
+ NSString *name = array[0];
+ if(name && !self.deck3Flag) {
+ self.deck3Flag = YES;
+ }
+ return name;
+}
+- (NSString *)mission4Name
+{
+ NSArray *array = [self.deck4 valueForKeyPath:@"selection.missionName.name"];
+ if(![array isKindOfClass:[NSArray class]] || [array count] == 0) {
+ self.deck4Flag = NO;
+ return nil;
+ }
+
+ NSString *name = array[0];
+ if(name && !self.deck4Flag) {
+ self.deck4Flag = YES;
+ }
+ return name;
+}
+- (NSNumber *)missionTimeForDeck:(NSObjectController *)deck
+{
+ NSNumber *compTimeValue = [deck valueForKeyPath:@"selection.mission_2"];
+ if(![compTimeValue isKindOfClass:[NSNumber class]]) return nil;
if([compTimeValue isEqualToNumber:@0]) return nil;
NSTimeInterval compTime = (NSUInteger)([compTimeValue doubleValue] / 1000.0);
return @(diff - [[NSTimeZone systemTimeZone] secondsFromGMT]);
}
}
+- (void)checkMission:(id)timeValue flagKey:(NSString *)flagKey nameKey:(NSString *)nameKey
+{
+ BOOL flag = [[self valueForKey:flagKey] boolValue];
+ if(flag && !timeValue) {
+ [self setValue:@NO forKey:flagKey];
+ [self willChangeValueForKey:nameKey];
+ [self didChangeValueForKey:nameKey];
+ } else if(!flag && timeValue) {
+ [self setValue:@YES forKey:flagKey];
+ [self willChangeValueForKey:nameKey];
+ [self didChangeValueForKey:nameKey];
+ }
+}
- (void)fire:(id)timer
{
self.nDock1Time = [self nDockTimeForNDock:self.nDock1];
self.kDock2Time = [self nDockTimeForNDock:self.kDock2];
self.kDock3Time = [self nDockTimeForNDock:self.kDock3];
self.kDock4Time = [self nDockTimeForNDock:self.kDock4];
+
+ self.deck2Time = [self missionTimeForDeck:self.deck2];
+ self.deck3Time = [self missionTimeForDeck:self.deck3];
+ self.deck4Time = [self missionTimeForDeck:self.deck4];
+ [self checkMission:self.deck2Time flagKey:@"deck2Flag" nameKey:@"mission2Name"];
+ [self checkMission:self.deck3Time flagKey:@"deck3Flag" nameKey:@"mission3Name"];
+ [self checkMission:self.deck4Time flagKey:@"deck4Flag" nameKey:@"mission4Name"];
}
@end
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="HMDocksViewController">
<connections>
+ <outlet property="deck2" destination="JD2-Is-0N3" id="wQh-E9-nRq"/>
+ <outlet property="deck3" destination="fW3-eV-iD2" id="lQi-zP-O6b"/>
+ <outlet property="deck4" destination="mcD-xj-hLm" id="ruP-jL-rGm"/>
<outlet property="kDock1" destination="3jk-7x-v7s" id="mZw-i1-5SC"/>
<outlet property="kDock2" destination="aXv-ob-wVw" id="I5h-NB-KNj"/>
<outlet property="kDock3" destination="ZCV-fJ-s2q" id="2Kk-bO-cMO"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
+ <connections>
+ <binding destination="-2" name="value" keyPath="mission2Name" id="lWL-mo-CDI">
+ <dictionary key="options">
+ <string key="NSNullPlaceholder">母港にいます</string>
+ </dictionary>
+ </binding>
+ </connections>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="sTn-uJ-Phx">
<rect key="frame" x="218" y="333" width="62" height="17"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
+ <connections>
+ <binding destination="-2" name="value" keyPath="deck2Time" id="Rf3-Ch-BqQ">
+ <dictionary key="options">
+ <string key="NSNullPlaceholder">--:--:--</string>
+ </dictionary>
+ </binding>
+ </connections>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ImV-DF-NX7">
<rect key="frame" x="24" y="226" width="82" height="17"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
+ <connections>
+ <binding destination="-2" name="value" keyPath="mission3Name" id="cZO-cl-ccO">
+ <dictionary key="options">
+ <string key="NSNullPlaceholder">母港にいます</string>
+ </dictionary>
+ </binding>
+ </connections>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="YPL-iZ-5QI">
<rect key="frame" x="218" y="308" width="62" height="17"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
+ <connections>
+ <binding destination="-2" name="value" keyPath="deck3Time" id="c5M-aS-Cqc">
+ <dictionary key="options">
+ <string key="NSNullPlaceholder">--:--:--</string>
+ </dictionary>
+ </binding>
+ </connections>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="cSE-HO-9tA">
<rect key="frame" x="24" y="283" width="65" height="17"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
+ <connections>
+ <binding destination="-2" name="value" keyPath="mission4Name" id="RGv-h5-cMS">
+ <dictionary key="options">
+ <string key="NSNullPlaceholder">母港にいます</string>
+ </dictionary>
+ </binding>
+ </connections>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="aaL-Hq-rXW">
<rect key="frame" x="218" y="283" width="62" height="17"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
+ <connections>
+ <binding destination="-2" name="value" keyPath="deck4Time" id="BBn-yb-VWf">
+ <dictionary key="options">
+ <string key="NSNullPlaceholder">--:--:--</string>
+ </dictionary>
+ </binding>
+ </connections>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="mOt-g2-cwL">
<rect key="frame" x="24" y="201" width="82" height="17"/>
<binding destination="-2" name="managedObjectContext" keyPath="managedObjectContext" id="Mv1-18-kk6"/>
</connections>
</objectController>
+ <objectController mode="entity" entityName="Deck" fetchPredicateFormat="id = 2" editable="NO" automaticallyPreparesContent="YES" id="JD2-Is-0N3" userLabel="deck2">
+ <connections>
+ <binding destination="-2" name="managedObjectContext" keyPath="managedObjectContext" id="Cyf-Be-eNZ"/>
+ </connections>
+ </objectController>
+ <objectController mode="entity" entityName="Deck" fetchPredicateFormat="id = 3" editable="NO" automaticallyPreparesContent="YES" id="fW3-eV-iD2" userLabel="deck3">
+ <connections>
+ <binding destination="-2" name="managedObjectContext" keyPath="managedObjectContext" id="rM9-jv-lrc"/>
+ </connections>
+ </objectController>
+ <objectController mode="entity" entityName="Deck" fetchPredicateFormat="id = 4" editable="NO" automaticallyPreparesContent="YES" id="mcD-xj-hLm" userLabel="deck4">
+ <connections>
+ <binding destination="-2" name="managedObjectContext" keyPath="managedObjectContext" id="ZGl-49-2A3"/>
+ </connections>
+ </objectController>
</objects>
</document>
\ No newline at end of file
<attribute name="ship_3" optional="YES" attributeType="Integer 32" defaultValueString="0" syncable="YES"/>
<attribute name="ship_4" optional="YES" attributeType="Integer 32" defaultValueString="0" syncable="YES"/>
<attribute name="ship_5" optional="YES" attributeType="Integer 32" defaultValueString="0" syncable="YES"/>
+ <fetchedProperty name="missionName" optional="YES" syncable="YES">
+ <fetchRequest name="fetchedPropertyFetchRequest" entity="MasterMission" predicateString="id = $FETCH_SOURCE.mission_1 AND maparea_id = $FETCH_SOURCE.mission_0"/>
+ </fetchedProperty>
</entity>
<entity name="KenzoDock" representedClassName="HMKCManagedObject" syncable="YES">
<attribute name="complete_time" optional="YES" attributeType="Integer 64" defaultValueString="0" syncable="YES"/>