CocoaではNSIntegerまたは通常のintを好むのですか、なぜですか? 、NSDouble
およびNSFloat
の言及がありましたが、参照が表示されませんすべてのドキュメントのそれら。 NSInteger
の目的がアーキテクチャの安全性である場合、double
やfloat
などの他のタイプはどうですか?
NSInteger
タイプのサイズは32ビットシステムと64ビットシステムで異なるため、int
が存在します。 float
とdouble
のサイズは同じように変化しないので、それらのラッパータイプを持つ必要はありません。
NSFloat
はありませんが、一部のアーキテクチャでfloat
を使用できるように、Core Graphics APIが最終的にCGFloat
からdouble
に変更されたことを知っています。
APIヘッダーが宣言する正確な型を使用するのが最善です。これにより、別のターゲット用にコードを再コンパイルした場合に型の変更が自動的に行われます。
また、規約についてです。
Intに対するtypedefは、int int自体と互換性がありません。
例:pid_tはint型ですが、intを渡すと警告が作成されます。
どうして? APIの境界を越えた場合、コードが何を期待しているのか誰もが知っていることを確認したいからです。
Float型とdouble型、つまりNSTimeIntervalがあります。それは実際に基礎となる型に関するものではなく、従うべき慣習です。
ローカルintをループカウンターとして宣言し、それを適切に定義されたAPIに渡す予定がない場合は、intをintに呼び出しても問題ありません。