gpt4 book ai didi

objective-c - 为什么我的图表如此不稳定?

转载 作者:行者123 更新时间:2023-12-03 17:56:49 25 4
gpt4 key购买 nike

我使用 Core Plot 创建了散点图。然而,我的图表需要动态刷新(不断添加和删除点)。我需要情节流畅并且看起来“在图表上滑动”。相反,我似乎得到了一条断断续续的线,它一次添加几个值,卡住,然后再次添加几个值。是什么导致了这种行为?

-(void)updateDataWithVal:(double)percentageUsage
{
if ([self.graphData count] >= 10)
{
[self.graphData removeLastObject];
}
[self.graphData insertObject:[NSNumber numberWithDouble:percentageUsage] atIndex: 0];
[self.graph reloadData];
}

上面是每次我想要改变图形时调用的函数。问题不在于更新数据。我调试了该函数并注意到数据正在流畅地更新(每秒在数据数组中添加和删除一个点)。问题在于图表实际上发生了变化。什么可能导致图表卡住并一次添加多个点(每 6-7 秒),而不是像数据那样每秒持续更新?

我怀疑这是由于在短时间内添加许多点而造成的。每秒仅删除和添加一个点。此外,我的图表只有一个图。

我的图表在 OSX 上运行,而不是在 iOS 上运行。所有代码均采用 Objective-C 编写。

最佳答案

根据要求,我可以将我的评论转换为答案,以便结束。

Core Plot 图表严重依赖于显示元素,因此对它们的任何更新都必须在主线程上执行。否则,您将看到奇怪的渲染行为,例如不一致的更新、视觉伪影,并且您的应用程序很可能会在某个时刻崩溃。

我必须在我的一个 Mac 应用程序中执行您所描述的相同操作。为此,我使用后台 GCD 队列来处理数据采集和处理,以避免阻塞主线程。但是,每次我需要将结果插入图表并更新它时,我都会使用dispatch_async()将适当的代码包装在要在主线程上执行的 block 中。这应该可以保护您免受像您在此处看到的那样的渲染奇怪情况的影响。

关于objective-c - 为什么我的图表如此不稳定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12043684/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com