0

我尝试使用之前给定一个视图的数组(内容为 NSIntegers)绘制带有 Core-Plot 的条形图。在 NSInteger 中传输 Array 后,我必须将其转换为 NSDecimalNumber,在此过程中,我的 NSInteger(例如 45)变为“60900224”...

这是代码摘录:

-(NSNumber *)numberForPlot:(CPPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index 
{ NSInteger *values = [Werte objectAtIndex:index];
    NSDecimalNumber *num = nil;
    if ( [plot isKindOfClass:[CPBarPlot class]] ) {
        switch ( fieldEnum ) {
            case CPBarPlotFieldBarLocation:
                num = (NSDecimalNumber *)[NSDecimalNumber numberWithUnsignedInteger:index];
                break;
            case CPBarPlotFieldBarLength:
                //num = (NSDecimalNumber *)[NSDecimalNumber numberWithUnsignedInteger:(index+1)*(index+1)];
                num = [NSNumber numberWithInt:values];
                if ( [plot.identifier isEqual:@"Bar Plot 2"] ) 
                    num = [num decimalNumberBySubtracting:[NSDecimalNumber decimalNumberWithString:@"10"]];
                break;
        }

    }
    return num;
}

感谢帮助!!

4

1 回答 1

0

NSInteger不是对象类型,不能存储在NSArray(您的Werte似乎是)中。您似乎正在从指针隐式转换为整数。

相反,您应该始终将NSNumber对象放入数组中,然后通过以下方式获取 NSInteger 值integerValue

NSInteger value = [[Werte objectAtIndex:index] integerValue];
于 2010-06-25T10:37:17.747 回答