OSDN Git Service

履歴アイテムを削除するクラスを追加
authormasakih <masakih@users.sourceforge.jp>
Tue, 28 Jun 2016 12:19:48 +0000 (21:19 +0900)
committermasakih <masakih@users.sourceforge.jp>
Tue, 28 Jun 2016 12:19:48 +0000 (21:19 +0900)
KCD.xcodeproj/project.pbxproj
KCD/HMHistoryItemCleaner.h [new file with mode: 0644]
KCD/HMHistoryItemCleaner.m [new file with mode: 0644]

index 7e8a78b..68613f0 100644 (file)
@@ -30,6 +30,7 @@
                F4268034195332A000B2C27F /* HMPowerUpCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F4268033195332A000B2C27F /* HMPowerUpCommand.m */; };
                F42680371957000200B2C27F /* HMTimerCountFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = F42680361957000200B2C27F /* HMTimerCountFormatter.m */; };
                F42CBB231D1F967F004C2AE2 /* HMHistoryMarkTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = F42CBB221D1F967F004C2AE2 /* HMHistoryMarkTransformer.m */; };
+               F42CBB261D21583C004C2AE2 /* HMHistoryItemCleaner.m in Sources */ = {isa = PBXBuildFile; fileRef = F42CBB251D21583C004C2AE2 /* HMHistoryItemCleaner.m */; };
                F43769D61ADE86B200DE6204 /* HMQuestListCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F43769D51ADE86B200DE6204 /* HMQuestListCommand.m */; };
                F43769DA1ADE890800DE6204 /* HMQuestListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F43769D81ADE890800DE6204 /* HMQuestListViewController.m */; };
                F43769DE1AE1248800DE6204 /* HMAirBattleCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F43769DD1AE1248800DE6204 /* HMAirBattleCommand.m */; };
                F42CBB201D1ED41D004C2AE2 /* LocalData 3.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "LocalData 3.xcdatamodel"; sourceTree = "<group>"; };
                F42CBB211D1F967F004C2AE2 /* HMHistoryMarkTransformer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMHistoryMarkTransformer.h; sourceTree = "<group>"; };
                F42CBB221D1F967F004C2AE2 /* HMHistoryMarkTransformer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMHistoryMarkTransformer.m; sourceTree = "<group>"; };
+               F42CBB241D21583C004C2AE2 /* HMHistoryItemCleaner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMHistoryItemCleaner.h; sourceTree = "<group>"; };
+               F42CBB251D21583C004C2AE2 /* HMHistoryItemCleaner.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMHistoryItemCleaner.m; sourceTree = "<group>"; };
                F43769D41ADE86B200DE6204 /* HMQuestListCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMQuestListCommand.h; sourceTree = "<group>"; };
                F43769D51ADE86B200DE6204 /* HMQuestListCommand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMQuestListCommand.m; sourceTree = "<group>"; };
                F43769D71ADE890800DE6204 /* HMQuestListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMQuestListViewController.h; sourceTree = "<group>"; };
                                F4F9F89A1C6CB7D400D0EE76 /* HMFleet.m */,
                                F4F9F8A11C70AFB600D0EE76 /* HMFleetManager.h */,
                                F4F9F8A21C70AFB600D0EE76 /* HMFleetManager.m */,
+                               F42CBB241D21583C004C2AE2 /* HMHistoryItemCleaner.h */,
+                               F42CBB251D21583C004C2AE2 /* HMHistoryItemCleaner.m */,
                                F4D2CBBF18ACE7D7000EBC59 /* Command */,
                                F4BEEEA918D890660006F70C /* UI */,
                                F4BEEEA818D88FF30006F70C /* CoreData */,
                                F403893E1CAEA711002A264B /* HMMemberRequireInfoCommand.m in Sources */,
                                F46F104118A9B85E0063E503 /* HMJSONNode.m in Sources */,
                                F4BEEFDB1B0A219E004702B8 /* HMShipDeckCommand.m in Sources */,
+                               F42CBB261D21583C004C2AE2 /* HMHistoryItemCleaner.m in Sources */,
                                F43F3D461A33F7D400D6DAF7 /* HMResetSortieCommand.m in Sources */,
                                F4131ECF190F5C08004F7F9A /* HMStoreCreateSlotItemHistoryCommand.m in Sources */,
                                F4AA05FB192B92C800844688 /* Temporary.xcdatamodeld in Sources */,
diff --git a/KCD/HMHistoryItemCleaner.h b/KCD/HMHistoryItemCleaner.h
new file mode 100644 (file)
index 0000000..50e95ae
--- /dev/null
@@ -0,0 +1,15 @@
+//
+//  HMHistoryItemCleaner.h
+//  KCD
+//
+//  Created by Hori,Masaki on 2016/06/27.
+//  Copyright © 2016年 Hori,Masaki. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+@interface HMHistoryItemCleaner : NSObject
+
+- (void)cleanOldHistoryItems;
+
+@end
diff --git a/KCD/HMHistoryItemCleaner.m b/KCD/HMHistoryItemCleaner.m
new file mode 100644 (file)
index 0000000..792ce2c
--- /dev/null
@@ -0,0 +1,69 @@
+//
+//  HMHistoryItemCleaner.m
+//  KCD
+//
+//  Created by Hori,Masaki on 2016/06/27.
+//  Copyright © 2016年 Hori,Masaki. All rights reserved.
+//
+
+#import "HMHistoryItemCleaner.h"
+
+#import "HMUserDefaults.h"
+
+#import "HMLocalDataStore.h"
+
+
+@implementation HMHistoryItemCleaner
+
+- (void)cleanOldHistoryItems
+{
+       if(!HMStandardDefaults.cleanOldHistoryItems) return;
+       
+       HMLocalDataStore *store = [HMLocalDataStore oneTimeEditor];
+       
+       NSDate *date = [NSDate dateWithTimeIntervalSinceNow:-1 * HMStandardDefaults.cleanSiceDays * 24 * 60 * 60];
+       NSPredicate *p01 = [NSPredicate predicateWithFormat:@"date < %@", date];
+       NSPredicate *p02 = [NSPredicate predicateWithFormat:@"mark = 0 || mark = nil"];
+       NSPredicate *predicate = [NSCompoundPredicate andPredicateWithSubpredicates:@[p01, p02]];
+       
+       NSError *error = nil;
+       NSArray<NSManagedObject *> *array = [store objectsWithEntityName:@"KaihatuHistory"
+                                                                                                                                 predicate:predicate
+                                                                                                                                         error:&error];
+       if(!error) {
+               for(NSManagedObject *obj in array) {
+                       [store.managedObjectContext deleteObject:obj];
+               }
+       } else {
+               NSLog(@"%s ERROR: KaihatuHistory, %@", __PRETTY_FUNCTION__, error);
+       }
+       
+       error = nil;
+       array = [store objectsWithEntityName:@"KenzoHistory"
+                                                          predicate:predicate
+                                                                  error:&error];
+       if(!error) {
+               for(NSManagedObject *obj in array) {
+                       [store.managedObjectContext deleteObject:obj];
+               }
+       } else {
+               NSLog(@"%s ERROR: KenzoHistory, %@", __PRETTY_FUNCTION__, error);
+       }
+       
+       NSArray *area = @[@"1", @"2", @"3", @"4", @"5", @"6", @"7", @"8", @"9"];
+       NSPredicate *p03 = [NSPredicate predicateWithFormat:@"mapArea IN %@", area];
+       predicate = [NSCompoundPredicate andPredicateWithSubpredicates:@[predicate, p03]];
+       
+       error = nil;
+       array = [store objectsWithEntityName:@"DropShipHistory"
+                                                          predicate:predicate
+                                                                  error:&error];
+       if(!error) {
+               for(NSManagedObject *obj in array) {
+                       [store.managedObjectContext deleteObject:obj];
+               }
+       } else {
+               NSLog(@"%s ERROR: DropShipHistory, %@", __PRETTY_FUNCTION__, error);
+       }
+}
+@end