【发布时间】: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