2011-08-04 11 views
2

現在、私はコアデータを使用するアプリケーションで作業しています。私の管理オブジェクトの1つは、曜日(日曜日〜土曜日)を整数(0〜6)として追跡するプロパティを持っています。日ごとのオブジェクトのソートや保存時のオーバーヘッドの削減のために、私は間違いなく、日をインデックスとして保存し、実行時に文字列に変換することをお勧めします。索引を対応する日に変換するのが最良の方法です。すなわち、 0 => @ "日曜日"と6 => @ "土曜日"。私は明らかにこれを達成するためにNSCalendarとNSDateとNSDateComponentsを使うことができます。それは、タスクの単純さを考えれば、非常にラウンドアバウトな方法のように思えます。曜日インデックスを文字列の目的コードに変換する

NSString *dayOfWeek[7] = {@"Sunday",@"Monday",@"Tuesday",@"Wednesday",@"Thursday",@"Friday'"@"Saturday"}; 

をしかし、私は自分自身常に何度も何度もこの同じ変数を再定義見つける:当然のことながら、そのように定義簡単なNSStringの配列は、トリックを行うことができます。グローバル定数NSStringが機能します。私が持っていた別のアイデアは、このdayOfWeek配列を使用し、それを必要とするファイルに含める関数を作成することでした。どう思いますか。ベストプラクティスは何ですか?

答えて

1

もう1つの解決策は、番号に基づいて文字列を返すなど、NSStringでカテゴリメソッドを定義することです。その後、文字列配列は静的で、そのメソッドでのみ使用できます。

+1

+1確かに、これはうまくいくでしょう。 NSDateFormatterのアプローチの利点は、あなたの曜日の名前をローカライズすることです。 :) –

+1

おそらく2つの組み合わせ。 NSDateFormatterがローカライズされたテキストを返すという事実は素晴らしいです。しかし、配列のインデックスがコアデータ(日曜日= 0)でOPが使用するインデックスに適合するかどうかを確認する必要があります。また、おそらくそれを使ってメソッドを作成し、カテゴリ(またはデータモデルの方が良い)にカプセル化して、このメソッドにweekdaySymbols配列を使用させることになります。 –

8

NSDateFormatterのweekdaySymbolsメソッドの1つはどうですか?