NSInteger myInt = 1804809223;
NSLog(@"%i", myInt); <====
上記のコードはエラーを生成します:
タイプ「NSInteger」の値は、フォーマット引数として使用しないでください。代わりに明示的なキャストを「long」に追加してください
訂正されたNSLogメッセージは実際にNSLog(@"%lg", (long) myInt);です。値を表示したいmyIntのに整数値をに変換する必要があるのはなぜlongですか?
NSIntegerはありません)、OS Xターゲット(はNSInteger あります long)でコンパイルしているようです。
NSLog(@"%ld", (long) myInt);、longキャストはそれはと一致することですlの修飾子%ldが、として、そのすべてが不要であるNSLog(@"%d", myInt);、我々はそれを見ることができることを考えると(十分であるmyIntではありませんlong。ボトムライン、あなたはキャストmyInt形式で長い修飾子を使用している場合文字列ですが、長い文字列形式の修飾子を使用したり、longここにキャストしたりする必要はありません