2010-06-25 82 views
0

我嘗試繪製一個條形圖與Core-Plot與數組(內容是NSIntegers)給出一個視圖之前。 在一個NSInteger轉化中的數組後,我必須把它轉換成一個NSDecimalNumber,並在這個過程中,我的NSInteger的(例如45)變爲「60900224」 ......問題與NSNumber和繪製一個圖與核心 - 陰謀

下面的代碼摘錄:

-(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

NSInteger不是對象類型,也不能存儲在NSArray(您的Werte看來是)。你似乎隱式地將一個指針轉換爲一個整數。

相反,你應該始終把NSNumber對象到數組,然後得到NSInteger的值超出那些通過integerValue

NSInteger value = [[Werte objectAtIndex:index] integerValue]; 
+0

好的,非常感謝你,這是我的問題,與NSNumberFormatter條形圖作品! – Jonathan 2010-06-25 12:07:11