久しぶりの更新。Swift3でアプリ開発をしているが、CoreDataというDBラッパー(内部はSQLiteらしい)を使用している。テーブル定義を専用ファイルに書き込むだけでデータコンテナとなるクラスが自動生成され、リレーションもつけられので、それなりに便利だが、通常のSQLを使ったクエリーを書けるようにはなっていない。
条件を指定して検索するのだが、せっかく自動生成していても、カラムの名称などは手入力しないといけないし、条件式も文字列とプレースホルダーで与える形だ。 また、Swift3になってデータ型がNSのついた古いもの(NextStep由来の Object-C 型)から、NSのつかないものに切り替わっているため、その相互変換もやや煩わしい。let nsdate = NSDate()などでもできるのだが、タイムゾーンの扱いが微妙に異なる気がするので、複数の国や時間帯がある場合は注意を要しそうだ。
let date:Date = nsdata as Date