[解決済み] NSInteger 変数をフォーマット引数として使用する場合、なぜ long にキャストする必要があるのですか?
2022-05-12 18:35:38
質問
NSInteger myInt = 1804809223;
NSLog(@"%i", myInt); <====
上記のコードでは、エラーが発生します。
NSInteger' 型の値はフォーマット引数として使用しないでください; 代わりに 'long' 型への明示的なキャストを追加してください。
修正された
NSLog
メッセージは、実際には
NSLog(@"%lg", (long) myInt);
. の整数値を変換しなければならないのはなぜですか?
myInt
を
long
を表示させたい場合は?
解決方法は?
OS X (64ビット) でコンパイルした場合、この警告が表示されます。
NSInteger
は次のように定義されています。
long
であり、64ビット整数である。また
%i
の書式は、一方では
int
であり、32ビットである。つまり、フォーマットと実際のパラメータはサイズが一致しないのです。
このため
NSInteger
はプラットフォームによって32ビットまたは64ビットであるため、コンパイラーは
にキャストを追加します。
long
が一般的です。
アップデートしてください。 iOS 7では64bitもサポートされたため、コンパイル時に同じ警告が表示されることがあります。 をiOS用に変更しました。
関連
-
[解決済み】Xcodeのビルド失敗 "アーキテクチャx86_64の未定義シンボル"
-
[解決済み】Objective-C。NULL、nil、@""の違いは何ですか?
-
[解決済み] UILabelのフォントサイズ?
-
[解決済み] SQLです。タイムスタンプの日付から1日分を差し引く
-
[解決済み] NSStringをNSNumberに変換する方法
-
[解決済み] CocoaPodsを使用している場合、.gitignoreには何が入るのでしょうか?
-
[解決済み] ブロック内の変数をブロック外の変数に代入する
-
[解決済み】NSDateで年/月/日を取得する。
-
[解決済み】Objective-C: パス文字列からファイル名を抽出する
-
[解決済み】NSStringが特定の文字で始まるかどうかを確認する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】何が原因か。switch文からこのcaseラベルにジャンプできない [重複]。
-
[解決済み] エラー: バイナリ式のオペランドが無効です ('float' と 'float')
-
[解決済み] NSNumberをNSStringに変換する方法
-
[解決済み] Objective-Cで乱数を発生させる
-
[解決済み] Xcodeでコンソールに何かを印刷するには?
-
[解決済み] ターゲット・パターンに '%' が含まれていません。メイクファイル
-
[解決済み] synthesize vs @dynamic、その違いとは?
-
[解決済み] Xcode 4でNSZombieEnabledを設定するにはどうすればよいですか?
-
[解決済み】メインスレッドでタスクを実行するGCD
-
[解決済み】Cocoaアプリからターミナルコマンドを実行する