-4

自从升级到 XCode 4.5 后,打印ints到控制台会导致异常高的值。例如:

int someInt = 300;
NSLog([NSString stringWithFormat:@"Some int: %d", someInt]); // prints Some int: 11581443

通常我只在为数据类型使用错误的格式字符串时才会看到这一点。我正在使用 LLDB。

4

3 回答 3

3

你用错了NSLog

void NSLog (
   NSString *format,
   ...
);

前任:

int someInt = 100;
NSString* str = [NSString stringWithFormat:@"%d",someInt];
NSLog(@"%@",str);

或者

NSLog(@"%d", someInt)

或者

NSLog(@"%@", [NSString stringWithFormat:@"%d",someInt])
于 2012-09-23T17:25:04.353 回答
1

尝试NSLog(@"Integer: %i", int)

于 2012-09-23T16:46:56.027 回答
0

@askovpen 关于您对 的错误使用是正确的NSLog,但是您问题中的这一行很有趣:

对数据类型使用错误的格式字符串

你当然会把垃圾拿出来——你把垃圾放进去!

NSLog通过使用第一个参数来计算其他参数的大小。即,如果你把%c它期望在参数中的下一个字符。如果你把%d它期望一个int。因此,如果您传入一个 int 并告诉它期待一个浮点数,那么是的,它不会起作用。你为什么会期望它会?

您可能在 XCode 4.5 而不是其他 XCode 中获得不同值的原因可能是由于编译期间内存管理的变化,或者可能是由于许多其他原因。

于 2012-09-23T17:59:35.207 回答