【问题标题】:iOS Core Plot: backboardd[26] <Error>: CoreAnimation: failed to mapiOS Core Plot: backboardd[26] <Error>: CoreAnimation: failed to map
【发布时间】:2013-09-07 16:24:30
【问题描述】:

我在我开发的 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)。 我也使用了分配工具,但在迭代过程中趋势并没有增长。

奇怪的是: 如果我以这种方式运行应用程序: 视图 1 --> 视图 2 --> 视图 3 --> 视图 4 --> 视图 5 --> 视图 6 --> 视图 7 图表不会消失(经过 200 次迭代)。

如果我以这种方式运行应用程序: view1 --> view2 --> view3 --> view4 --> view5 --> view6 --> view7 --> view8 图在 49 次迭代后消失

如果我以这种方式运行应用程序: view1 --> view2 --> view3 --> view4 --> view5 --> view6 --> view7 --> view8 --> 最后一个视图 图在 7 次迭代后消失。

知道这一点也很有趣: view3 和 view6、view4 和 view7、view5 和 view8 是镜面反射的(它们是两个类,呈现相同的图,只是变量不同)

这是我创建 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;)

}

有人对此问题有答案或建议吗?

感谢您的建议

【问题讨论】:

  • 您使用的是什么版本的 Core Plot?
  • 我正在使用 Core Plot 1.3,我也尝试使用最后一个预发布版本,但没有解决问题。
  • 解决了吗?我正在使用 SwiftCharts 但遇到同样的错误

标签: ios ipad core-animation core-plot


【解决方案1】:

我建议仅当您的工作不是由核心情节完成时才遵循我的回答。

过去我也使用核心情节,但过程有点复杂。

最好有替代解决方案。

就像您可以使用 javascript、css、html 一样,有了这样的支持,您可以轻松地将其作为 html 字符串加载到 webview 中,并且非常省力。

看看我开始使用的这个http://www.rgraph.net/,如果 iOS 开发人员可以轻松地使用复杂多样的图表,那将是一个福音。

【讨论】:

  • 实际上 Core Plot 运行良好,我的项目已经完成。我更愿意解决这个问题,而不是重新开发整个项目。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-08-02
  • 2011-11-22
  • 1970-01-01
  • 2019-06-23
  • 2021-12-09
  • 2019-11-30
  • 1970-01-01
相关资源
最近更新 更多