ヘッダーを見ると、私がコンパイルしている 64 ビット システムでは、NSUInteger と UInt32 の両方が 32 ビットの符号なし整数として定義されていることがわかります。他?
「暗黙的な変換は整数の精度を失います: 'NSUInteger' (別名 'unsigned long') から 'UInt32' (別名 'unsigned int')」
警告が 1 つを 'long' として、もう 1 つを 'int' として参照していることがわかりますが、このシステムではどちらも同じ 32 ビットの符号なし整数に解決されるため、精度が失われることはありません。
実際には問題はありませんが、おそらく何かを誤解しているように見えるので、理解を深めたいと思います。
この質問がありましたが、「なぜ」ではなく安全性に対処しています: UInt32 を NSUInteger に安全に保存できますか?