[[NSDate date] get:@(8).days.ago];とか書ける。
NSNumberにカテゴリで daysやmonthsを追加して上記のような記法にしている。中心部分は表(おもて)に見えない NSDateComponentsのカテゴリ。KVCを駆使して ago や before を実現していてなかなかおもしろかった。
このコードで初めて知ったのが NSCalendar.autoupdatingCurrentCalendar
リファレンスによれば
Discussionとのこと。ユーザ設定が反映された currentCalendarということか。その逆に currentCalendarはキャッシュされた情報を使っているのか?
Settings you get from this calendar do change as the user’s settings change (contrast with currentCalendar).
Note that if you cache values based on the calendar or related information those caches will of course not be automatically updated by the updating of the calendar object.
StackOverflowの回答によれば
But since it is not public, there is no reason to use currentCalendar.ふーむ。
That is, always use autoupdatingCurrentCalendar.
(オチ無し)
0 件のコメント:
コメントを投稿