2010-06-25 3 views
0

하나의 뷰가 주어지면 Core-Plot과 Array (내용은 NSIntegers)가있는 막 대형 차트를 그려 봅니다.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; 
} 
: 여기

코드 추출물의 ... NSInteger의 배열을 transfering 후, 나는 NSDecimalNumber로 변환해야하며,이 과정에서, 내 NSInteger (예 : 45) "60900224"이됩니다

도움 주셔서 감사합니다!

답변

0

NSInteger은 개체 유형이 아니기 때문에 (사용자의 Werte 인 것으로 보임)에 저장할 수 없습니다. 암시 적으로 포인터에서 정수로 변환하는 것 같습니다. integerValue를 통해 그 중 NSInteger 값을

대신, 당신은 항상 배열로 NSNumber 물건을 올려해야하고 얻을 :

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

좋아, NSNumberFormatter 막대 차트로,이 내 문제이고, 대단히 감사합니다 공장! – Jonathan