値オブジェクト
値オブジェクトは、本質的にオブジェクト指向のラッパー(wrapper)で、文字列、数値、日付などのような単純なデータ要素を包みます。ココアで一般的な値クラスは、NSString、NSDate、および NSNumber です。値オブジェクトは、多くの場合、作成した他のカスタムオブジェクトの属性です。
値オブジェクトは、対応する単純なスカラー型(char、NSTimeInterval、int、float、または double のような) よりもリッチな動作を提供します。
- NSArray や NSDictionary のインスタンスのような、コレクション内の値オブジェクトのいずれかを入れることができます。
- NSString や、およびそのサブクラスの NSMutableString を使用すると、文字列に関連した操作の広い範囲を行うことができます。たとえば、文字列を一緒に結合でき、文字列を分割して、ファイルパスで操作し、文字の大文字と小文字を変換し、部分文字列を検索します。これらのすべてにおいて、文字列オブジェクトは Unicode として扱われます。
- NSDate を使用して、NSCalendar およびその他の関連するクラスと連携して、タイムゾーンやうるう年などのアカウントの変数を考慮して、ユーザの好みのカレンダーに基づいた、2つの時間的なインスタンスの間の月と日の数を決定するなどの複雑な暦計算を実行できます。
- NSNumber サブクラスの NSDecimalNumber を使って、正確に、通貨ベースの計算の実行ができます。
NSValue
NSValue は、C や Objective-C の1つのデータ項目の簡単なコンテナを提供します。char、int、float、または double だけでなく、ポインタ、構造体、およびオブジェクト ID のようなスカラー型のいずれでも保持できます。それは、それらの要素がオブジェクトであることが必要な NSArray や NSSet のインスタンスのようなものとしてコレクションにこのようなデータ型の項目を追加することができます。コレクションに point、size、または rectangle 構造体(NSPoint、CGSize、または NSRect のような) を配置する必要がある場合に特に便利です。
前提条件の記事
(なし)
前の章