2012-01-25 18 views
1

我正在構建一個應用程序,使用CorePlot庫來顯示圖形。使用CorePlot庫時內存分配增加

我有一個tableView,當一個單元格被點擊時,它顯示了詳細視圖控制器中的相關圖表。

現在當在儀器中測試我的應用程序時,我發現當圖表加載時會增加內存分配。 在我的detailViewController中,我釋放了所有我保留的東西。

我有CPXYGraph *graph在我.h文件中

,並在.M功能我加入一個陰謀我圖形對象定義 即

CPScatterPlot *boundLinePlot2 = [[[CPScatterPlot alloc] init] autorelease]; 
    boundLinePlot2.identifier = @"My Plot2"; 
boundLinePlot2.dataLineStyle.miterLimit = 1.0f; 
boundLinePlot2.dataLineStyle.lineWidth = 1.0f; 
boundLinePlot2.dataLineStyle.lineColor = [CPColor yellowColor]; 
    boundLinePlot2.dataSource = self; 
    // Add plot symbols 

CPLineStyle *symbolLineStyle2 = [CPLineStyle lineStyle]; 
symbolLineStyle2.lineColor = [CPColor yellowColor]; 
symbolLineStyle2.lineWidth = 1.0f; 
CPPlotSymbol *plotSymbol2 = [CPPlotSymbol ellipsePlotSymbol]; 
plotSymbol2.fill = [CPFill fillWithColor:[CPColor yellowColor]]; 
plotSymbol2.lineStyle = symbolLineStyle2; 
    plotSymbol2.size = CGSizeMake(0.2, 0.2); 
    boundLinePlot2.plotSymbol = plotSymbol2; 

// Set plot delegate, to know when symbols have been touched 
// We will display an annotation when a symbol is touched 
    boundLinePlot2.delegate = self; 
    boundLinePlot2.plotSymbolMarginForHitDetectionX = 25.0f; 
boundLinePlot2.plotSymbolMarginForHitDetectionY = 400.0f; 

[graph addPlot:boundLinePlot2]; 

我現在的問題是,如果我做了什麼像[graph removePlot:boundLinePlot2]當回到我的mainViewController時,它會在我的內存分配問題,如果不是那麼當我們應該使用removePlot屬性

回答

0

每個情節在從數據源加載數據後緩存自己的數據,這可能是您看到的大部分分配增加。

將圖形從其託管視圖中移除並釋放它以在完成後回收內存。 -removePlot:方法僅從圖中移除給定的圖。只要你不把劇情留在別的地方,這將釋放一些記憶。

+0

我會試試看看結果如何。 –

+0

我是否也必須對我的核心圖文件進行更改..? –