0

Я знаю, что это скорее практический, но по какой-то причине я уже усложняю то, что должно быть простым быстрым перечислением. Я просто хочу сделать промежуточную «Shift Length» для каждого «Number». У меня есть NSObject, который я создал для преобразования mm: ss в секунды, чтобы легко преобразовать, я не беспокоюсь об этом. Я хочу, чтобы результаты были еще одним NSArray из NSMutableDictionary-х:Как суммировать значения в NSMutableArray из NSMutableDictionary's

{ 
Number = 2; 
"Shift Length" = "1:30" 
}, etc. 

Заранее спасибо ...

-Поль

Примеры данных

2013-11-24 15:58:32.677 TimeOnIce[79815:70b] _gameSheetMutableArray: (
    { 
    Number = 10; 
    "Shift Length" = " 1:32"; 
    "Time Off Ice" = "08:00"; 
    "Time On Ice" = "09:32"; 
}, 
    { 
    Number = 11; 
    "Shift Length" = " 1:34"; 
    "Time Off Ice" = "07:56"; 
    "Time On Ice" = "09:30"; 
}, 
    { 
    Number = 14; 
    "Shift Length" = " 1:10"; 
    "Time Off Ice" = "06:56"; 
    "Time On Ice" = "08:06"; 
}, 
    { 
    Number = 15; 
    "Shift Length" = " 1:10"; 
    "Time Off Ice" = "06:54"; 
    "Time On Ice" = "08:04"; 
}, 
    { 
    Number = 16; 
    "Shift Length" = " 1:10"; 
    "Time Off Ice" = "06:52"; 
    "Time On Ice" = "08:02"; 
}, 
    { 
    Number = 2; 
    "Shift Length" = " 0:22"; 
    "Time Off Ice" = "09:38"; 
    "Time On Ice" = "10:00"; 
}, 
    { 
    Number = 2; 
    "Shift Length" = " 1:08"; 
    "Time Off Ice" = "06:48"; 
    "Time On Ice" = "07:56"; 
}, 
    { 
    Number = 20; 
    "Shift Length" = " 1:10"; 
    "Time Off Ice" = "06:50"; 
    "Time On Ice" = "08:00"; 
}, 
    { 
    Number = 3; 
    "Shift Length" = " 0:24"; 
    "Time Off Ice" = "09:36"; 
    "Time On Ice" = "10:00"; 
}, 
    { 
    Number = 4; 
    "Shift Length" = " 0:26"; 
    "Time Off Ice" = "09:34"; 
    "Time On Ice" = "10:00"; 
}, 
    { 
    Number = 5; 
    "Shift Length" = " 0:28"; 
    "Time Off Ice" = "09:32"; 
    "Time On Ice" = "10:00"; 
}, 
    { 
    Number = 6; 
    "Shift Length" = " 0:30"; 
    "Time Off Ice" = "09:30"; 
    "Time On Ice" = "10:00"; 
}, 
    { 
    Number = 7; 
    "Shift Length" = " 1:32"; 
    "Time Off Ice" = "08:06"; 
    "Time On Ice" = "09:38"; 
}, 
    { 
    Number = 8; 
    "Shift Length" = " 1:32"; 
    "Time Off Ice" = "08:04"; 
    "Time On Ice" = "09:36"; 
}, 
    { 
    Number = 9; 
    "Shift Length" = " 1:32"; 
    "Time Off Ice" = "08:02"; 
    "Time On Ice" = "09:34"; 
} 

EDIT

Я был в состоянии решить эту проблему:

NSArray *playerNumbersArray = [_gameSheetMutableArray valueForKeyPath:@"@distinctUnionOfObjects.Number"]; 

    for (NSString *playerNumber in playerNumbersArray) 
    { 
     NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(Number == %@)", playerNumber]; 
     NSArray *playerNumbersArrayPredicate = [_gameSheetMutableArray filteredArrayUsingPredicate:predicate]; 

     NSNumber *shiftLength = [playerNumbersArrayPredicate valueForKeyPath:@"@sum.Shift Length"]; 
     NSLog(@"Player Number %@: Time on Ice: %@", playerNumber, [_convertSecondsToMMSS convertSecondstoMMSS:[shiftLength intValue]]); 
    } 
+0

Какие значения вы добавляете? Что вы пробовали? – uchuugaka

+1

Мне удалось решить это с помощью приведенного выше изменения. –

ответ

0
NSArray *playerNumbersArray = [_gameSheetMutableArray valueForKeyPath:@"@distinctUnionOfObjects.Number"]; 

    for (NSString *playerNumber in playerNumbersArray) 
    { 
     NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(Number == %@)", playerNumber]; 
     NSArray *playerNumbersArrayPredicate = [_gameSheetMutableArray filteredArrayUsingPredicate:predicate]; 

     NSNumber *shiftLength = [playerNumbersArrayPredicate valueForKeyPath:@"@sum.Shift Length"]; 
     NSLog(@"Player Number %@: Time on Ice: %@", playerNumber, [_convertSecondsToMMSS convertSecondstoMMSS:[shiftLength intValue]]); 
}