文書   >   Foundation   >   Date and Times   >   Date   >   NSNumber


クラス


NSNumber


原始的スカラー数値のオブジェクト・ラッパー。





概観


NSNumber は任意の C スカラー (数値) 型として値を提供する NSValue のサブクラスです。これは、値を符号付きまたは符号なしの char、short int、int、long int、long long int、float、または double として、または BOOL として設定およびアクセスするためのメソッドのセットを明確に定義します。(数値オブジェクトは、作成される型を保持するとは限りません。) また、compare(_:) メソッドを定義して、2 つの NSNumber オブジェクトの順序を決定します。


NSNumber は、Core Foundation で対応する部分である、整数と浮動小数点値の CFNumber とブール値の CFBoolean と "通話無料でブリッジ" されています。通話無料でブリッジの詳細については、通話無料でブリッジ を参照してください。


値の変換


NSNumber は、特定のブール値、整数、符号なし整数、または浮動小数点 C スカラ型に変換されたオブジェクトの格納値を返す読み取り専用プロパティを提供します。数値型には異なる保管機能があるため、ある型の値で初期化して別の型の値にアクセスしようとすると、誤った結果が生じる可能性があります。たとえば、FLT_MAX を超える double 値で初期化し、その floatValue にアクセスしたり、その uintValue にアクセスします。場合によっては、型の値で初期化しようとしたり、別の型の値にアクセスしようとすると精度が失われる可能性があります。たとえば、有効数字の多い double 値で初期化し、floatValue にアクセスするか、大きな整数値で初期化し、int8Value にアクセスします。


unsigned intfloat などの異なる 種類 の型の変換値にアクセスする特定の型の値で初期化された NSNumber オブジェクトは、格納した値を以下の方法でその変換型に変換します。


表 1 ブール値から NSNumber に変換


ValueboolValueintValueuintValuefloatValue
falsefalse000.0
truetrue111.0


表 2 整数値から NSNumber に変換


ValueboolValueintValueuintValuefloatValue
0false000.0
1true111.0
-1true-1無効、エラーの結果-1.0


表 3 符号なしの整数値から NSNumber に変換


ValueboolValueintValueuintValuefloatValue
0false000.0
1true111.0


表 4 浮動小数点値から NSNumber に変換


ValueboolValueintValueuintValuefloatValue
0false000.0
1true111.0
-1true-1無効、エラーの結果-1.0


サブクラス化する際の注意点


全てのクラスクラスタと同様に、NSNumber のサブクラスはそのスーパークラス NSValue の原始的メソッドをオーバーライドしなければなりません。さらに、サブクラスが表すデータ型には 2 つの要件があります。


  1. objCType の実装では、"c"、"C"、"s"、"S"、"i"、"I"、"l"、"L"、"q"、"Q"、"f"、そして "d" のうち 1 つを返さなければなりません。これは、NSNumber の他のメソッドが正しく動作するために必要です。

  2. サブクラスは宣言された型に対応するアクセサメソッドをオーバーライドしなければなりません。たとえば、objCType の実装が "i" を返す場合は、int32Value をオーバーライドしなければなりません。

トピックス







@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@
編集中
@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@



関連





以下からの継承


NSValue





以下に準拠


  • CKRecordValue
  • CVarArg
  • Equatable
  • ExpressibleByBooleanLiteral

  • ExpressibleByFloatLiteral
  • ExpressibleByIntegerLiteral
  • Hashable
  • NSFetchRequestResult


以下も見よ





値ラッパーと変換


    class NSValue


    単一の C または Objective-C データ項目用の単純なコンテナ。


    class ValueTransformer


    ある表現から別の表現に値を変換するために使用される抽象クラス。





目次
Xcode の新機能

  • 言語:Swift
  • SDK:
  • iOS 2.0+
    macOS 10.0+
    tvOS 9.0+
    watchOS 2.0+

  • 概観
  • トピックス
  • 関連
  • 以下も見よ












  • トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)