私は NSLog / NSAssert などの呼び出しでかなりの量の文字列形式指定子を持っ%d
て%u
いNSInteger (= int on 32bit)
ますNSUInteger (= unsigned int on 32bit)
。
アプリを 64 ビットに変換すると、(もちろん) 警告が表示さ%ld %lu
れます。long
unsigned long
もちろん、フォーマット指定子を単純に変換すると、32 ビット ビルドで逆の警告が発生します。
したがって、警告が発生しない唯一の解決策は、64 ビット指定子を使用し、32 ビット ビルドで警告が発生するすべての場所で 64 ビット値型にキャストすることです。
しかし、キャストせずに両方のアーキテクチャで機能するNSInteger
and型専用のフォーマット指定子があるのではないかと思っていましたか?NSUInteger