NSDateにカテゴリがあり、日付を操作するためのいくつかの関数を実装したいと思います。
NSDate *thedate = [NSDate date];
[thedate setToMidnight];
だから私はNSDateに次のような関数を持っています:
-(void)setToMidnight {
some code with calendars and comps
self = theNewDate;
}
これは関数内で機能しますが、このメンバー関数の外では、日付は変更されていません。自己はメンバー関数内で作成された単なるローカル変数であると言われたので、この誤動作を理解しています。では、どうすればこれを機能させることができますか?
もちろん、私は書くことができたでしょう:
thedate = [thedate dateAsMidnightDate]
or thedate = [NSDate dateAtMidnightFromDate:thedate]
しかし、日付を変更したくないので、以前に作成した値のいくつかの値を調整するだけなので、インスタンスクラス内でより意味があると思います。