我正在执行此代码:
NSLog(@"Converting line number %@ to int...",currentValue);
NSNumber * currentNumber = [NSNumber numberWithInt:[currentValue integerValue]];
NSLog(@"Converted integer %d",currentNumber);
哪个输出:
Converting line number 211 to int...
Converted integer 62549488
我在这里做错了什么?在这种情况下,currentValue是一个值为211的NSMutableString。
答案 0 :(得分:11)
“currentNumber”是和您尝试使用%d打印的对象。
NSLog(@"Converted integer %d", [currentNumber intValue]);
答案 1 :(得分:5)
虽然您的问题已经得到解答,但您的代码还有其他问题。
Cocoa方法与名称中的int
和integer
存在差异。
int ,例如numberWithInt
或intValue
处理 int 。
整数(例如numberWithInteger
或integerValue
处理 NSInteger 的。
编程32/64位程序时,这可能是错误和不一致的来源。
只需注意并保持一致。
答案 2 :(得分:2)
NSNumber是继承的NSObject类。它不是Integer.So你可以使用“%@”而不是%d。
您可以按如下方式更改NSLog行,
NSLog(@"Converted integer %@",currentNumber);