うるおいらんど

アプリ開発やサイト制作のメモとか。

【Swift 3】NSPredicateでDateを扱うとき【CoreData】

魚ライン
魚ライン

今回はちょっと寄り道編。

CoreDataでDateを保存した際の取り出し方についてです。

 

まずは現在の時刻を保存するところから。

 

詳しいところはとりあえず【Swift 3】CoreDataを使ってみた【part1】にて。

part1では時刻は保存していませんが、parsonのattributeにdateが追加されている状態として見てください・・・。

 

そしてこれを読み込む時なんですが、

例えば「2016年10月17日のデータを取り出したい」というとき。

 

まずこれは失敗した方です。

 

欲しいデータは「2016年10月17日」のデータですが、保存時のデータは「2016年10月17日15時23分35秒」といったところまで含んでいます。

 

つまりラインを引いたところが間違いで、

「2016年10月17日」 == 「2016年10月17日15時23分35秒」ではないので、欲しいデータが得られません。

 

 

ちょっと荒っぽいやり方になってしまいましたが、とりあえず解決策(´・ω・`)

 

0時0分0秒から23時59分59秒までのデータを探してくれ!ということなんですが、まぁそのまんまですね。

なんとかうまい書き方がないもんかと思いますが・・・

 

ちなみにNSPredicateを用いる時はDateではなくNSDateじゃないとだめらしいです。

 

とりあえず何でも記事にしとけ!ってことでメモ書きしていますが、何かの参考になればと思います・・・。

 

参考にした記事

NSPredicate: filtering objects by day of NSDate property

魚ライン 魚ライン

Swiftの記事一覧を見る

コメント

コメントは認証制です。詳しくは下記の注意をお読みください。

コメントを残す

コメント時の注意

「Twitter」「Facebook」「Google+」「WordPress」のいずれかのアカウントをお持ちの方は各アカウントと連携することでコメントできます。 コメントしたことはSNSに流れませんので、アカウントをお持ちの方はこちらの方法でコメントを投稿して下さると嬉しいです。 アカウントをお持ちでない方はメールアドレスで投稿することができます。 初回コメント時は承認後に表示されます。

魚ライン 魚ライン