改めて、SwiftのDateの比較について

Thursday, February 23, 2017

しっかり考えれば当たり前のことなんですけど、頭の中からすっぽり抜けていたので書き留めておきます。

改めて。Dateは直接比較できる

(自分が)ついついやってしまうのですが、2つの Date を比較するときに

date1.timeIntervalSince1970 > date.timeIntervalSince1970

と、TimeInterval(Double)で比較してしまうのですが、よく考えると DateComparable , Equatable に適合しているので、

date1 > date2
date1 == date2

と比較することができます。

Rangeにもできる

DateRange も作ることができるので、

past <= current && current < future

みたいな比較の仕方も、

(past..<future) ~= current

と、Rangeを使って判定することもできます。
(upperとlowerが逆になるとクラッシュしますが…)

techSwiftDate

Swiftでdeinit時にメンバ変数(property)のdidSetが呼ばれない気がした

TravisCI+Xcode8でUnitTestが謎にコケまくるので直した