将字符串(YaxisData)转换为NSNumber时遇到问题。我必须返回NSNumber for Core-plot才能完成图表,但它不起作用。这是示例代码
-(NSNumber *)numberForPlot:(CPPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index{
NSNumber *num = [NSNumber numberWithDouble:[[YaxisData objectAtIndex:index] doubleValue]];
return num;
}
num返回垃圾数据,例如-1或993494949494但是当我记录数字的double值时,它会输出正确的值。我无法返回此double值,因为函数签名只需要返回NSNumber。
NSLog(@"Number: %f", [num doubleValue]);
我被困在这里,非常感谢这方面的任何帮助。谢谢!
答案 0 :(得分:1)
这会以某种方式给出更好的结果吗?
NSString *aString = [YaxisData objectAtIndex:index];
NSLog(@"%@", aString);
double value = [aString doubleValue];
NSLog(@"%f", value);
NSNumber *number = [NSNumber numberWithDouble:value];
NSLog(@"%@", number);
如果没有,你能否显示 NSLog()的结果?
我知道在实践中它似乎是相同的代码,但是可能不太确定 -objectAtIndex:总是返回一个字符串。它也可能是一个本地化问题(小数点分隔符的逗号和点可能会混淆,这肯定会弄乱你的结果。如果出现本地化问题,请检查以下链接: