I私のMac OS Xアプリケーションで次のコード行がありますのNSLog私に訂正されない警告を与える
NSLog(@"number of items: %ld", [urlArray count]);
と私は警告を取得:「フォーマットは 『長い』タイプを指定しますが、引数が入力しています'NSUInteger'
しかし、私は自分のコードを変更した場合(別名 'unsigned int型は')」:
:NSLog(@"number of items: %u", [urlArray count]);
私は警告を取得します フォーマットの指定:
フォーマットは、それでは、私は
NSLog(@"number of items: %u", [urlArray count]);
に変更したが、私は警告を受ける「unsigned int型」とタイプが、引数は(別名「unsigned long型」)「NSUInteger」と入力した
指定します引数には 'NSUInteger'(別名 'unsigned int')型があります。
警告を生成しないようにNSLogを設定するにはどうすればよいですか?私がXcodeの提案に従えば、フォーマット指定子を変更する無限ループに入りますが、警告は消えません。
ではなく、不必要なようだが、それは、警告をクリアありません。 – Jackson
違いがあるのかどうかはわかりませんが、フォーマット指定子と同じ型にするべきです。 (unsigned long)は%lu、(long)は%ldになります –
@darren違いがありますが、そうしないと未定義の動作になります。 –