1

私が開発した 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;)

}

この問題に関する回答や提案はありますか?

アドバイスありがとう

4

1 に答える 1

0

あなたの仕事がコアプロットによって行われていない場合にのみ、私の答えに従うことをお勧めします。

過去に私もコア プロットを使用していましたが、それは少し複雑なプロセスです。

代替ソリューションを用意することをお勧めします。

javascript、css、htmlを使用できるように、そのようなサポートにより、非常に少ない労力で簡単にwebviewにhtml文字列としてロードできます。

私が使い始めたこのhttp://www.rgraph.net/を見てください。IOS 開発者が複雑で多様なチャートを少ない労力で使用できるようになることは恩恵です。

于 2013-09-08T04:01:59.197 に答える