自从升级到 XCode 4.5 后,打印ints
到控制台会导致异常高的值。例如:
int someInt = 300;
NSLog([NSString stringWithFormat:@"Some int: %d", someInt]); // prints Some int: 11581443
通常我只在为数据类型使用错误的格式字符串时才会看到这一点。我正在使用 LLDB。
自从升级到 XCode 4.5 后,打印ints
到控制台会导致异常高的值。例如:
int someInt = 300;
NSLog([NSString stringWithFormat:@"Some int: %d", someInt]); // prints Some int: 11581443
通常我只在为数据类型使用错误的格式字符串时才会看到这一点。我正在使用 LLDB。
你用错了NSLog
。
void NSLog (
NSString *format,
...
);
前任:
int someInt = 100;
NSString* str = [NSString stringWithFormat:@"%d",someInt];
NSLog(@"%@",str);
或者
NSLog(@"%d", someInt)
或者
NSLog(@"%@", [NSString stringWithFormat:@"%d",someInt])
尝试NSLog(@"Integer: %i", int)
@askovpen 关于您对 的错误使用是正确的NSLog
,但是您问题中的这一行很有趣:
对数据类型使用错误的格式字符串
你当然会把垃圾拿出来——你把垃圾放进去!
NSLog
通过使用第一个参数来计算其他参数的大小。即,如果你把%c
它期望在参数中的下一个字符。如果你把%d
它期望一个int。因此,如果您传入一个 int 并告诉它期待一个浮点数,那么是的,它不会起作用。你为什么会期望它会?
您可能在 XCode 4.5 而不是其他 XCode 中获得不同值的原因可能是由于编译期间内存管理的变化,或者可能是由于许多其他原因。