Apple は、やNSNumber
のようなプリミティブな C 型ではなく、などのクラスの使用を推奨しているようですが、やり過ぎのように思えることもあります。前者よりも後者を使用することをお勧めするのはいつですか?int
float
4 に答える
いつプリミティブを使用するか
数値を操作する必要がある場合 (数学を実行し、値を変更する...)、プリミティブを使用する必要があります。私は Cocoa の typedef の ( NSInteger
, CGFloat
) を好みますが、特定のことを行い、long long
または何かでより大きな数値を使用する必要がある場合があります。 ...
したがって、それはあなたの好みとユースケース次第です。
NSナンバーについて
NSNumber
は のサブクラスです。これは、API のようにオブジェクトを操作する必要がある場合や、やNSValue
のようなコンテナを操作する必要がある場合に役立ちます。NSArray
NSDictionary
したがってNSNumber
、プリミティブの単なるコンテナーです。
NSNumberのドキュメントを見ると、各プリミティブ型からオブジェクトを作成するための多数のメソッドと、オブジェクトからプリミティブ値を抽出するための多数のメソッドが表示されます。文字列表現を取得するための比較メソッドと便利なメソッドもいくつかあります。しかし、実際にはプリミティブの単なるオブジェクト コンテナーであることがわかります。
通常、値が の場合はオブジェクトを使用します。それ以外のnil
場合は、プリミティブ型を使用します (一部の API がオブジェクトを必要としない限り)。