0

我正在尝试使用 NSArray 填充条形图,以便在每次调用视图时动态更新。

数组如下所示:Motor = [[NSArray alloc]initWithObjects:@"100", @"200", @"345", @"476", @"512", nil];

这就是我如何称呼创造

-(NSNumber *)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index{

        if ([plot.identifier isEqual:@"Motor"]) {
              return [Motor objectAtIndex:index];
        }
}

任何帮助都会非常好。

4

2 回答 2

0

当您将 NSString 值添加到数组@“100”时;是字符串值。因此,当您返回一个值时,您将返回字符串,它应该是 NSNumber。

-(NSNumber *)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index{

        if ([plot.identifier isEqual:@"Motor"]) {
              NSString *value = [Motor objectAtIndex:index];
               return [NSNumber numberWithInteger:[value integerValue]];// this will return number value with array walues. 
        }
         return [NSNumber numberWithInteger:0];//will return zero you can return whatever you want
}
于 2013-11-14T16:42:46.620 回答
0

你实现了这个方法吗?

- (NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plot

此外,您永远不会测试将为其返回值的字段。你应该试试这个。

- (NSNumber *)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)idx
{
    NSNumber* value;
    if ([plot.identifier isEqual:@"Motor"]) 
    {
        // The location of the bar
        if(fieldEnum == CPTBarPlotFieldBarLocation)
        {
            value = [NSNumber numberWithInteger:index];
        }
        // The value/height of the bar
        else if(fieldEnum == CPTBarPlotFieldBarTip)
        {
            value = [Motor objectAtIndex:index];
        }
    }
    return value;
}
于 2013-11-14T16:04:36.573 回答