私が開発した iPad アプリの Core Plot に問題があります。アプリ全体で ARC を使用しています。
私のアプリは9つのビューコントローラーとして、各ビューコントローラーには2つまたは3つの散布図を持つコアプロットグラフがあります。
これらのビューを 8 回または 9 回 (前後に) 繰り返した後、一部のグラフが消え、iPad のエラー ログに次のように表示されます。
Sep 7 18:12:24 Mio-iPad backboardd[26] <Error>: CoreAnimation: failed to map 2263232 bytes (3) Sep 7 18:12:24 Mio-iPad backboardd[26] <Error>: CoreAnimation: missing mask layer 0x0 Sep 7 18:12:24 Mio-iPad backboardd[26] <Error>: CoreAnimation: serialization error from context 1173490153 Sep 7 18:12:24 Mio-iPad backboardd[26] <Error>: CoreAnimation: rendering error 506 Sep 7 18:12:25 Mio-iPad backboardd[26] <Error>: CoreAnimation: rendering error 506 Sep 7 18:12:25 Mio-iPad backboardd[26] <Error>: CoreAnimation: failed to map 2263232 bytes (3) Sep 7 18:12:25 Mio-iPad backboardd[26] <Error>: CoreAnimation: missing mask layer 0x0 Sep 7 18:12:25 Mio-iPad backboardd[26] <Error>: CoreAnimation: serialization error from context 1173490153 Sep 7 18:12:25 Mio-iPad backboardd[26] <Error>: CoreAnimation: rendering error 506 Sep 7 18:12:25 Mio-iPad backboardd[26] <Error>: CoreAnimation: rendering error 506 Sep 7 18:12:25 Mio-iPad backboardd[26] <Error>: CoreAnimation: rendering error 506 Sep 7 18:12:25 Mio-iPad backboardd[26] <Error>: CoreAnimation: rendering error 506 Sep 7 18:12:25 Mio-iPad backboardd[26] <Error>: CoreAnimation: rendering error 506 Sep 7 18:12:25 Mio-iPad backboardd[26] <Error>: CoreAnimation: rendering error 506 Sep 7 18:12:25 Mio-iPad backboardd[26] <Error>: CoreAnimation: rendering error 506 Sep 7 18:12:25 Mio-iPad backboardd[26] <Error>: CoreAnimation: rendering error 506 Sep 7 18:12:25 Mio-iPad backboardd[26] <Error>: CoreAnimation: rendering error 506 Sep 7 18:12:25 Mio-iPad backboardd[26] <Error>: CoreAnimation: rendering error 506 Sep 7 18:12:25 Mio-iPad backboardd[26] <Error>: CoreAnimation: rendering error 506 Sep 7 18:12:25 Mio-iPad backboardd[26] <Error>: CoreAnimation: rendering error 506
グラフが消える前にメモリ警告 (didReceiveMemoryWarning) が表示されません。アロケーションインストゥルメントも使用しましたが、反復中にトレンドが成長しません。
奇妙なことは、次のようにアプリを実行した場合: view1 --> view2 --> view3 --> view4 --> view5 --> view6 --> view7 グラフが消えない (200 回の反復後) )。
この方法でアプリを実行すると: view1 --> view2 --> view3 --> view4 --> view5 --> view6 --> view7 --> view8 49回の反復後にグラフが消える
この方法でアプリを実行すると: view1 --> view2 --> view3 --> view4 --> view5 --> view6 --> view7 --> view8 --> last view グラフは 7 回の反復後に消えます。
また、興味深いのは、view3 と view6、view4 と view7、view5 と view8 が鏡面反射型であることです (これらは、変数が異なるだけで同じグラフを表示する 2 つのクラスです)。
これは私が dealloc メソッドを作成した方法です (私は ARC を使用しているため)、何か問題はありますか?
-(void)dealloc
{
touchPlotBall = nil; //(CPTScatterPlot)
dataSourceLinePlot= nil; //(CPTScatterPlot)
dataSourceSLinePlot = nil; //(CPTScatterPlot)
[scatterPlotViewValue removeFromSuperview]; //(CPTGraphHostingView)
scatterPlotViewValue=nil; //(CPTGraphHostingView)
[scatterPlotViewBall removeFromSuperview]; //(CPTGraphHostingView)
scatterPlotViewBall=nil; //(CPTGraphHostingView)
self.delegate = nil; //(id<view7ControllerDelegate> delegate;)
}
この問題に関する回答や提案はありますか?
アドバイスありがとう