gpt4 book ai didi

ios - Core Plot numberForPlot 不会取大于 1 的值

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:16:14 26 4
gpt4 key购买 nike

我第一次尝试使用核心图在 iPhone 应用程序中呈现条形图。我成功地遵循了这里的教程:并且能够呈现条值。

然后我继续更改代码以显示特定于我的应用程序的对象的值(称为“发票”)。一张发票有一个名为“totalCost”的 NSNumber 值。这就是我想在图表上显示的内容。

我发现,如果我的 totalCost 值介于 0 和 1 之间,则条形图会正确显示在图表上。但是,如果我的值大于 1,则条形图根本不会显示。我尝试了 float 、无符号整数等之间的各种类型转换,并且调试了代码并确认 invoice.totalCost 始终显示正确的 NSNumber 值。

此外,我的 y 轴范围目前设置为大约 70,因此大于 1 的值不应超出范围。

这是代码片段:

-(NSNumber *)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:  (NSUInteger)index {
Invoice *invoice = [self.invoices objectAtIndex:index];
return invoice.totalCost;
}

最佳答案

您需要检查fieldEnum 参数。对于每个数据索引,此方法将至少调用两次,一次针对条形图位置,另一次针对条形图尖端值。

-(NSNumber *)numberForPlot:(CPTPlot *)plot
field:(NSUInteger)fieldEnum
recordIndex:(NSUInteger)index
{
NSNumber *num = nil;

switch ( fieldEnum ) {
case CPTBarPlotFieldBarLocation:
num = [NSNumber numberWithUnsignedInteger:index];
break;

case CPTBarPlotFieldBarTip:
num = ((Invoice *)[self.invoices objectAtIndex:index]).totalCost;
break;
}

return num;
}

关于ios - Core Plot numberForPlot 不会取大于 1 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14721795/

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