フォーマッタ
フォーマッタは、値を表す文字列表現を自動的に、値を表すオブジェクトに、およびその逆に変換するオブジェクトです。例えば、NSNumberFormatter オブジェクトは値”1.25”の文字列を、1.25 の値を表すNSNumber オブジェクトに変換することができます。 NSDateFormatter オブジェクトは 2009 年 11 月 12 日を表す NSDate オブジェクトを"11/22/2009" に変換できます。変換は文字列を値オブジェクトに、値オブジェクトを文字列に、と両方の方法で動作します。フォーマッタの抽象基本クラスは NSFormatter です。他のデータの型を、アプリケーションのデータモデルで定義されたカスタムデータでも、NSFormatter をサブクラス化することによってフォーマッタを作成できます。
フォーマッタの設定と適用
日付や数値フォーマッタオブジェクトを作成するときは、さまざまな方法でそれを構成できますが、主な属性は、フォーマッタのスタイルとロケールです。あなたは NSNumberFormatter オブジェクトに、小数点、通貨、パーセント、科学的、または"スペルアウト" スタイル(たとえば、"25" を"twenty-five" に) を与えられます。NSDateFormatter オブジェクトに、例えば"11/22/2009" から"Sunday,Novenver 22,2009 AD" へと明示性な範囲内で日付と時刻の両方のスタイルを与えられます。
特定のロケールを反映するように、フォーマッタオブジェクトに NSLocale オブジェクトも適用できます。例えば、アメリカ英語での"1.02" は、フランス語では"1,02" となります。(ユーザーが設定した) 現在のロケールを取得するには、NSLocale クラスメソッド currentLocale を呼び出します。
日付や数値フォーマッタを構成した後は、値オブジェクトを取得するためにユーザインタフェース(通常はテキストフィールド) から取得した文字列にそれを適用したり、NSDate または NSNumber オブジェクトに適用し、その結果得られる文字列をユーザーインターフェイスに書き込みます。これらの目的のため呼出すメソッドは dateFromString:、stringFromDate:、numberFromString:、stringFromNumber:です。
OS X ではセルにフォーマッタを添付
OS Xでは、プログラム的または Interface Builder で、セルオブジェクトに数値や日付フォーマッタオブジェクトを関連づけできます。文字列と数値や日付オブジェクト間の変換は自動的に行なわれ、変換を実行するメソッドを呼び出す必要はありません。セルオブジェクトは、テキストフィールド以外のオブジェクトに関連付けできます。たとえば、テーブルビューやアウトラインビューのセルにフォーマッタオブジェクトを割り当てることができます。
前提条件の記事
(なし)
関連記事
既知のディスカッション
データの書式設定ガイド
サンプルコードプロジェクト
International Mountains
PhotoSearch