OSDN Git Service

KCD CoreDataのデータがない時に艦隊リストが全く表示されない問題を一部解消
authormasakih <masakih@users.sourceforge.jp>
Sat, 2 Apr 2016 12:36:22 +0000 (21:36 +0900)
committermasakih <masakih@users.sourceforge.jp>
Sat, 2 Apr 2016 12:36:22 +0000 (21:36 +0900)
艦隊リストの艦隊を切り替えると表示されるようにした

KCD/HMFleetManager.h
KCD/HMFleetManager.m

index f2335ef..e12e305 100644 (file)
@@ -11,6 +11,6 @@
 @class HMFleet;
 @interface HMFleetManager : NSObject
 
-@property (readonly) NSArray<HMFleet *> *fleets;
+@property (nonatomic, readonly) NSArray<HMFleet *> *fleets;
 
 @end
index 2e48382..04f4e88 100644 (file)
@@ -17,7 +17,7 @@
 //static HMFleetManager *sharedInstance = nil;
 
 @interface HMFleetManager ()
-@property (strong) NSArray<HMFleet *> *fleets;
+@property (nonatomic, strong) NSArray<HMFleet *> *fleets;
 @property (strong) NSArrayController *fleetController;
 
 @end
 {
        self = [super init];
        if(self) {
-               NSMutableArray<HMFleet *> *array = [NSMutableArray array];
-               for(NSInteger i = 1; i <= 4; i++) {
-                       HMFleet *fleet = [HMFleet fleetWithNumber:@(i)];
-                       [array addObject:fleet];
-               }
-               _fleets = array;
-               
-               _fleetController = [[NSArrayController alloc] initWithContent:_fleets];
-               [_fleetController addObserver:self forKeyPath:@"arrangedObjects.ships" options:0 context:NULL];
+               [self setupFleets];
        }
        
        return self;
 }
 
+- (void)setupFleets
+{
+       NSMutableArray<HMFleet *> *array = [NSMutableArray array];
+       for(NSInteger i = 1; i <= 4; i++) {
+               HMFleet *fleet = [HMFleet fleetWithNumber:@(i)];
+               [array addObject:fleet];
+       }
+       _fleets = array;
+       
+       if(_fleets[0].ships.count == 0) {
+               return;
+       }
+       
+       _fleetController = [[NSArrayController alloc] initWithContent:_fleets];
+       [_fleetController addObserver:self forKeyPath:@"arrangedObjects.ships" options:0 context:NULL];
+}
+
+- (NSArray<HMFleet *> *)fleets
+{
+       if(_fleets[0].ships.count == 0) {
+               [self setupFleets];
+       }
+       return _fleets;
+}
+
 - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context
 {
        if([keyPath isEqualToString:@"arrangedObjects.ships"]) {