2

Apple は、やNSNumberのようなプリミティブな C 型ではなく、などのクラスの使用を推奨しているようですが、やり過ぎのように思えることもあります。前者よりも後者を使用することをお勧めするのはいつですか?intfloat

4

4 に答える 4

4

いつプリミティブを使用するか

数値を操作する必要がある場合 (数学を実行し、値を変更する...)、プリミティブを使用する必要があります。私は Cocoa の typedef の ( NSInteger, CGFloat) を好みますが、特定のことを行い、long longまたは何かでより大きな数値を使用する必要がある場合があります。 ...

したがって、それはあなたの好みとユースケース次第です。

NSナンバーについて

NSNumberは のサブクラスです。これは、API のようにオブジェクトを操作する必要がある場合や、やNSValueのようなコンテナを操作する必要がある場合に役立ちます。NSArrayNSDictionary

したがってNSNumber、プリミティブの単なるコンテナーです。

NSNumberのドキュメントを見ると、各プリミティブ型からオブジェクトを作成するための多数のメソッドと、オブジェクトからプリミティブ値を抽出するための多数のメソッドが表示されます。文字列表現を取得するための比較メソッドと便利なメソッドもいくつかあります。しかし、実際にはプリミティブの単なるオブジェクト コンテナーであることがわかります。

于 2013-06-19T02:54:14.260 に答える
1

通常、値が の場合はオブジェクトを使用します。それ以外のnil場合は、プリミティブ型を使用します (一部の API がオブジェクトを必要としない限り)。

于 2013-06-19T02:44:22.977 に答える