-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つまり、パラメータに char next を期待する場合です。置く%dと、intが必要になります。したがって、int を渡して float を期待するように指示すると、うまくいきません。なぜそうなることを期待するのですか?

他の XCode ではなく XCode 4.5 で異なる値を取得する理由は、コンパイル中のメモリ管理の変更が原因である可能性があります。または、その他のさまざまな原因が考えられます。

于 2012-09-23T17:59:35.207 に答える