2013-11-14 43 views
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]; 
     } 
} 

將是非常不錯的。

+0

您正在返回字符串,您應該返回NSNumber ... –

回答

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; 
} 
+0

感謝您的幫助。 –

0

當您將NSString值添加到array @「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 
}