Выделение памяти увеличивается при использовании библиотеки CorePlot - PullRequest
1 голос
/ 25 января 2012

Я создаю приложение, в котором я использую библиотеки 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];

Теперь у меня вопрос: если я вернусь к своему mainViewController, я сделаю что-то вроде [graph removePlot:boundLinePlot2], изменит ли это какую-то разницу в моей проблеме выделения памяти, а если нет, то когда нам следует использовать removePlot свойство

1 Ответ

0 голосов
/ 26 января 2012

Каждый график кэширует свои собственные данные после загрузки их из источника данных, так что это, вероятно, большая часть увеличения выделения, которое вы видите.

Удалите график из его вида хостинга и освободите его, чтобы освободить память, когдавы сделали с этимМетод -removePlot: удаляет только данный график из графика.Это освободит память, если вы не сохраните сюжет в другом месте.

...