iOS Core Plot:backboardd [26] <error>:CoreAnimation:无法映射</error>

时间:2013-09-07 16:24:31

标签: ios ipad core-animation core-plot

我在开发的iPad App上遇到了Core Plot的问题。我的整个应用都使用ARC。

我的应用程序为9个viewControllers,在每个viewcontroller中都有一个带有2个或3个散点图的Core Plot图。

在将这些视图重复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)。 我也使用了分配工具,但在迭代过程中趋势不会增长。

奇怪的是: 如果我以这种方式运行应用程序: view1 - &gt; view2 - &gt; view3 - &gt; view4 - &gt; view5 - &gt; view6 - &gt; view7 图表不会消失(经过200次迭代)。

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

如果我以这种方式运行应用程序: view1 - &gt; view2 - &gt; view3 - &gt; view4 - &gt; view5 - &gt; view6 - &gt; view7 - &gt; view8 - &gt;最后的观点 图形在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;)

}

有没有人对这个问题有答案或建议?

感谢您的建议

1 个答案:

答案 0 :(得分:0)

我建议只有在核心情节没有完成你的工作时才能回答我的答案。

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

最好有另一种解决方案。

就像你可以使用javascript,css,html和这样的支持,你可以轻松地将它作为html字符串加载到webview中。

看一下我开始使用的这个http://www.rgraph.net/,对于ios开发人员来说,只需花费更少的精力就可以使用复杂多样的图表,这将是一个福音。