在iPhone中将NSString转换为NSNumber时出现问题

时间:2010-07-02 19:56:30

标签: iphone nsstring core-plot nsnumber

将字符串(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]);

我被困在这里,非常感谢这方面的任何帮助。谢谢!

1 个答案:

答案 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:总是返回一个字符串。它也可能是一个本地化问题(小数点分隔符的逗号和点可能会混淆,这肯定会弄乱你的结果。如果出现本地化问题,请检查以下链接:

How to convert an NSString into an NSNumber