第3章「Objective-C」内の NSCalendarDate について
コード
lottery.m(p52)
「日付オブジェクトを生成する」という箇所を NSCalendarDate から NSDate を使った次のコードに変更します。
NSDate *now = [[NSDate alloc] init];
次に「今からi週間後の日付/時間オブジェクトを生成する」という箇所のコードを次のように変更します。
NSDate *iWeekFromNow;
iWeekFromNow = [now dateByAddingTimeInterval:604800 * i];
注意:ここに書かれているコードは HTML での表示を整えるために目に見えない余計なタグ文字が入っている場合があります。このため、ここに書かれているコードをコピー&ペーストでコードファイルに貼付けた場合に、エラーになる場合もあります。出来るだけ手書きでコーディングされることをおすすめします。
説 明
dateByAddingTimeInterval は NSDate のインスタンスメソッドです。おそらくこのメソッドの働きはその名前から想像いただけると思いますが、引数の 604800 という数値は1週間を秒に直したものです。電卓で計算しました。この1週間を秒で表した数値は記号定数などにしておいたほうが良いとは思いますが、一応このまま掲載することにしました。もしかすると、リファレンスで探せば1週間が何秒になるかを表す定数が存在しているかもしれません。
なお、もっと良いメソッドがあるかもしれないという事も、述べておきます。