0

NSNumber を UInt32 変数に渡そうとしていますが、動作しているように見えますが、UInt32 の値をログに記録しようとすると行き詰まります。

これは私のコードがどのように見えるかです。

if ([methodName isEqualToString:@"Manu"]) {
        cacheNumber = [cacheValue objectForKey:@"Manus"];

        NSLog(@"%@", cacheNumber); // This produces the correct number
    }

    UInt32 CACHE_VALUE = [cacheNumber intValue];
    NSLog(@"%@", CACHE_VALUE); // This is where my thread gets stuck

これは、2 番目の NSLog をステップ実行しようとしたときに生成されるメッセージです (出力を確認するために両方のログにブレークポイントがあるため)。

行番号情報を持たない関数 objc_msgSend を終了するまでシングル ステップ。

どんな助けでも大歓迎です

4

2 に答える 2

2

UInt ではなく NSString を出力します。

    NSLog(@"%lu", CACHE_VALUE); // This is where my thread gets stuck
于 2012-05-09T01:12:21.003 に答える
0

オブジェクトではなく整数をログに記録しているため、つまり. %@ (オブジェクト) の代わりに %d (10 進数) プレースホルダーを使用する必要があります。

NSLog(@"Value: %d", CACHE_VALUE);
于 2012-05-09T01:13:58.447 に答える