我尝试在给出一个视图之前用一个数组(内容是NSIntegers)绘制带有核心图的条形图。 在NSInteger中传输数组后,我必须将其转换为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;
}
感谢您的帮助!!
答案 0 :(得分:0)
NSInteger
不是对象类型,无法存储在NSArray
(您的Werte
似乎是)中。您似乎隐式地将指针转换为整数。
相反,您应始终将NSNumber
个对象放入数组中,然后通过integerValue
获取NSInteger值:
NSInteger value = [[Werte objectAtIndex:index] integerValue];