これがハウツーであることはわかっていますが、何らかの理由で、単純な高速列挙であるべきものを複雑にしすぎています。各「数値」の「シフト長」を小計したいだけです。mm:ss を秒に変換して簡単に変換するために作成した NSObject がありますが、それについては心配していません。結果を NSMutableDictionary の別の NSArray にしたい:
{
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";
}
編集
これを次の方法で解決できました。
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]]);
}