【问题标题】:CoreAnimation: failed to allocate xxxx bytesCoreAnimation:分配 xxxx 字节失败
【发布时间】:2012-07-06 06:54:07
【问题描述】:

我正在开发一个 iOS 应用程序,我正在使用核心绘图来绘制图形。 一次需要绘制 15-16 个图表。 我有一个同步按钮,它从服务器获取数据并相应地绘制图表。 每次同步时,图表的数量可能会有所不同。 在绘制每个图表之前,我将使用代码发布早期的对象:

[smartbarChartView.hostedGraph.axisSet removeFromSuperlayer];
smartbarChartView.hostedGraph.axisSet=nil; 
smartbarChartView.hostedGraph=nil;
smartbarChartView = nil;

当我同步 2-3 次时,我仍然收到错误 CoreAnimation: failed to allocate xxxx bytes and application 卡住。

尝试解决问题一整天。

非常感谢任何指导。

提前致谢!

【问题讨论】:

  • 您在使用 ARC 吗?如果没有,您问题中的代码不会发布任何内容。
  • 是的。我正在使用 ARC 和 AFAIK 将对象设置为 nil 应该可以释放它们。对吧?

标签: ios memory-management core-animation core-plot


【解决方案1】:

释放托管视图 (smartbarChartView) 将释放图形及其所有组成部分,包括轴和图。确保您没有对图表或绘图进行强引用。

【讨论】:

  • 感谢您的回复。我没有在我的代码中制作图表属性,因此图表上没有强引用。知道出了什么问题吗?确实,我正在绘制 15-16 个图表。这会是问题的原因吗?
  • 这当然是可能的。图表有多大?为什么你同时需要这么多?
  • 图表相当大。但是将所有属性设置为 nil 就可以了。我对么?在当前的实现中,所有图表都绘制一次,所以是否有一个解决方案而不改变我当前的大部分代码?...如果可能的话。
  • 您是否需要保留整个图形(用于调整大小或交互性等),还是可以将图形渲染为图像并在渲染后释放每个图形?
  • 您能否解释一下我们如何在 ARC 开启时安全地发布图表?我怀疑将其设置为 nil 机制。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多