以下に示す行が例外をスローする理由についての手がかりはありますか?
-(double)calibrationValueAtIndex:(int)index
{
NSLog(@"count: %d index: %d",[theTopValues count], index);
return [[theTopValues objectAtIndex:index] doubleValue]; // exception happening here
}
2012-07-23 21:51:16.448 TestAppTimerAndHits[15130:f803] count: 9 index: 7
2012-07-23 21:51:22.339 TestAppTimerAndHits[15130:f803] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSOrderedSetM objectAtIndex:]: index 7 beyond bounds [0 .. 4]'
前の行で 9 のカウントを NSLog し、例外で境界が[0 .. 4]
.
例外は「ランダムに」スローされるようです..場合によっては、配列の境界が問題なく、インデックス 8 でオブジェクトを取得できることを意味します...しかし、それ以外の場合は、境界が[0 .. 2]
?
View Controller内(プロジェクト内のVCのみ)
theBufferManager = [[HitBufferManager alloc] init];
.h ファイル: @property NSMutableOrderedSet* theTopValues;
.m ファイル: @synthesize theTopValues;
-(id)HitBufferManager の初期化: theTopValues = [NSMutableOrderedSet ordersSetWithCapacity:numToStore]; // 自動リリースされたバージョンを返します。
個々の項目が追加/編集されます:
[self sortTopValues];
if([theTopValues count]<numToStore)
{
[theTopValues addObject:[NSNumber numberWithDouble:windowVal]];
}
else if(logVal> [[theTopValues objectAtIndex:0] doubleValue])
{
[theTopValues replaceObjectAtIndex:0 withObject:[NSNumber numberWithDouble:logVal]];
}