OSDN Git Service

装備の作業にNSOrderedSetではなくNSArrayを使用するように変更
authormasakih <masakih@users.sourceforge.jp>
Tue, 16 Dec 2014 15:35:36 +0000 (00:35 +0900)
committermasakih <masakih@users.sourceforge.jp>
Tue, 16 Dec 2014 15:35:36 +0000 (00:35 +0900)
KCD/HMMemberShipCommand.m

index bfec779..7fecdd4 100644 (file)
        [self setValueIfNeeded:value toObject:object forKey:@"ship_id"];
 }
 
-- (void)addSlotItem:(id)array toObject:(NSManagedObject *)object
+- (void)addSlotItem:(id)slotItems toObject:(NSManagedObject *)object
 {
        if(!self.slotItems) {
                NSError *error = nil;
                }
        }
 
-       NSInteger i = 0;
-       NSMutableOrderedSet *newOrderedSet = [NSMutableOrderedSet new];
+       NSMutableArray *newItems = [NSMutableArray new];
        NSRange range = NSMakeRange(0, self.slotItems.count);
-       for(id value in array) {
+       for(id value in slotItems) {
+               if([value integerValue] == -1) continue;
                NSUInteger index = [self.slotItems indexOfObject:value
                                                                                   inSortedRange:range
                                                                                                 options:NSBinarySearchingFirstEqual
                }
                id item = [self.slotItems objectAtIndex:index];
                
-               [newOrderedSet insertObject:item atIndex:i++];
+               [newItems addObject:item];
        }
        
        NSMutableOrderedSet *orderedSet = [object mutableOrderedSetValueForKey:@"equippedItem"];
-       if(![newOrderedSet isEqual:orderedSet]) {
-//             NSLog(@"equippedItem did change.");
-               [object setValue:newOrderedSet forKey:@"equippedItem"];
-       }
+       [orderedSet removeAllObjects];
+       [orderedSet addObjectsFromArray:newItems];
 }
 
 - (BOOL)handleExtraValue:(id)value forKey:(NSString *)key toObject:(NSManagedObject *)object