2016-09-19 18 views
0

私は本当に古いコードの一部をObjective CからSwiftに変換しています。私はこの怪物を見つけました。私はここで何をしているのか正確には分かりません。そのrangeOfUnitメソッドのドキュメントを見て、私は頭を傷つけています。NSCalendarのrangeOfUnitとは何ですか?startDate:interval:forDateは本当に何をしていますか?

私はちょうどそれらの2つの日付の間にいくつの日が存在するかを見ているようですが、それはのように実際にはそれを行うには奇妙な方法です。

NSDate *fromDate, *toDate; 
[self.calendar rangeOfUnit:NSCalendarUnitDay startDate:&fromDate interval:0 forDate:event.startDate]; 
[self.calendar rangeOfUnit:NSCalendarUnitDay startDate:&toDate interval:0 forDate:event.endDate]; 

NSInteger difference = labs([self.calendar components:NSCalendarUnitDay fromDate:fromDate toDate:toDate options:0].day) + 1; 

答えて

0

方法rangeOfUnitは真夜中を意味し、それぞれ指定された日付を含み(ここでday)カレンダユニットの開始を算出します。ポインタfromDateおよびtoDateには、返品時の結果が含まれています。 intervalパラメータのポインタは、カレンダー単位のNSTimeIntervalである86400を返します。

NSCalendarははるかに簡単に同じことを行うための方法があります。

NSDate *fromDate = [self.calendar startOfDayForDate:event.startDate]; 
関連する問題