Eyes, JAPAN
2016/11/11
SwiftでNSDate型の比較をprotocolを使って楽する
Shoma Saito
Swiftは標準で様々なprotocolが用意されていて、それを使うことによって簡単に比較演算子などを使うことが出来るようになります。
ちなみに普通にNSDateの比較をしようとするとこんな感じになります
let before = NSDate()
let after = NSDate()
before.compare(after) == .OrderedAscending
意味がわかりませんね。Swiftっぽくない。
これをprotocolを使うと
before < after
みたいに書くことが出来るようになります
Q. どうやるのか
A. こうやります
extension NSDate: Comparable {}
public func <(before: NSDate, after: NSDate) -> Bool {
return before.compare(after) == .OrderedAscending
}
public func ==(before: NSDate, after: NSDate) -> Bool {
return before.compare(after) == .OrderedSame
}
こう書くことによってどこでも<や>=、!=がつかえるようになります