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
つまり、パラメータに char next を期待する場合です。置く%d
と、intが必要になります。したがって、int を渡して float を期待するように指示すると、うまくいきません。なぜそうなることを期待するのですか?
他の XCode ではなく XCode 4.5 で異なる値を取得する理由は、コンパイル中のメモリ管理の変更が原因である可能性があります。または、その他のさまざまな原因が考えられます。