我正在构建一个启用了 ARC 的图形相关应用程序,其中图形上有两个不同的视图:-一个是小视图,我必须通过单击按钮来更改(使用重新加载数据)。-第二个视图是当点击“1 天”、“3 天”、“5 天”等按钮时图表发生变化的大视图。
我面临的问题是,在连续使用 15-20 分钟后,应用程序会因日志崩溃......“CAAnimation 无法分配字节”。当我在 Profile 上进行分析时,我了解到当小图加载时,实时字节会跳跃 2-3 mb,而当大图加载时,实时字节会跳跃 4 到 5 mb,而实时字节则永远不会下降。我在离开视图时取消了所有图形对象,但即便如此,内存也没有释放。
在切换到下一个图表时,我正在调用此方法:
-(void)removePlot
{
for(CPTPlot* plot in [graph allPlots])
{
plot.dataSource = nil;
plot.delegate = nil;
[plot deleteDataInIndexRange:NSMakeRange(0, plot.cachedDataCount)];
[graph removePlot:plot];
}
}
在离开视图时,我正在调用此方法:
-(void)removeGraph
{
[axisSet removeFromSuperlayer];
axisSet=nil;
[self removePlot];
generationPlot=nil;
[graph removePlotSpace:plotSpace];
plotSpace=nil;
[graph removeFromSuperlayer];
graph=nil;
[hostView removeFromSuperview];
hostView=nil;
headerList=nil;
graphDetailList=nil;
graphList=nil;
dataList=nil;
plotsArray=nil;
}
很多人之前都遇到过这个问题,但还没有答案对我有用。如果有人对此有任何想法......请提供帮助。