リアルタイム統計の錯覚を与えるために、コアプロット データを更新するタイマーがあります。タイマーが起動すると、配列に値が追加され、散布図が更新されます。これはうまく機能しますが、約 10 個のデータ ポイントをグラフ化したら、最初のポイントを削除して最後の 10 個のデータ ポイントのみを表示したいと考えています。しかし、データポイントを削除しようとすると、古いデータポイントと新しいデータポイントが重ねて表示されます。これがなぜなのか、私には理解できません。私は配列をゼロにしてリセットしようとしましたが、すべて役に立ちませんでした。なぜこれが起こるのかについてのアイデア。ここにいくつかのコードがあります:
//START GRAPHING
self.count = 0;
if (numberOfPackets == 1){ //on the first packet
[self.repeatingTimer invalidate];
self.repeatingTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(updateArray:) userInfo:nil repeats:YES];
self.arrayII = [[NSMutableArray alloc] init];
[self initPlot];
}
-(void) updateArray:(NSTimer *)timer{
self.count++;
// self.arrayII sources scatter plot data.
if (self.count < [dataPacketArray count]){
if (self.count > 5){
[self.arrayII removeObjectAtIndex:0]; //if I don't include this it works flawlessly.
}
[self.arrayII addObject:[dataPacketArray objectAtIndex:self.count]];
}
[self.view reloadInputViews];
[self configurePlots];
}
-(void) initPlot {
[self configureHost];
[self configureGraph];
[self configurePlots];
[self configureAxes];
}
このチュートリアルからすべての初期化プロットを取得しました。どんな助けでも大歓迎です。