SWIFTでCoreDataを使う[create編2]

こんにちは,よしむらです.

前回は,swiftでCoreDataライブラリを使う方法をまとめましたが,
今回はデータが正確に登録されているかを確認します.
アプリ側からの確認は次回実施するとして,今回はsqliteを使って確認したいと思います.

まずは,CoreDataが発行しているSQLを調査しましょう.
(※プロジェクト単位に作業をする必要があるので注意です.)

下記画像にある通り,「停止」ボタンの横にある,プロジェクト名をクリックして「Edit Scheme」を選択します.
EditScheme

そして,Runを選択して,Argumentsを選択して,下記の値を入力します.

Argument

この状態でプロジェクトを実行し,アプリを起動するとログにSQLを含めた色々な値が表示されます.

ここで注目すべきは,一行目のパスです.
CoreDataSample[4235:168041] CoreData: annotation: Connecting to sqlite database file at “/Users/XXXXX/Library/Developer/CoreSimulator/Devices/5E2AC797-C553-49B7-9BF0-A92CA75D4AFB/data/Containers/Data/Application/56259916-EC36-43BB-BCCC-9B95AF57B02D/Documents/CoreDataSample.sqlite

このパスが今回のアプリのsqliteファイルがあるパスになります.
XXXXXの部分は,ユーザ名が入ります.

では早速,ターミナルを開いてチェックしてみましょう.
ターミナルは何でもいいですが,私はiTermを使っています.

これで,データベースにアクセスできました.
sqliteでデータベース内にあるテーブルのリストを確認します.

いやいや,こんなテーブル作って無いしと思われるかも知れませんがこれは仕方ありません.
Z_METADATAとZ_PRIMARYKEYは自動で生成されるテーブルのようです.

さっきのログを確認すると,下記のSQLでZSAMPLEテーブルにINSERTしているようなのです.

早速,ZSAMPLEテーブルをSELECTしてみましょう.

あれ?定義した項目が無いらしい.テーブルのレイアウトを確認してみると.

因みに,左から順番に,
「カラムID,カラム名,データ型,NotNull,デフォルト値」
となります.

カラム名にまでZが付いているらしい.再度検索し直すと,値が取得できているので登録処理が動いている事がわかりました.

 

因みに,検索結果にカラム名を表示したい場合は,下記の様に先にコマンドを実行しておけばOKです.

 

【Reference Links】
(1)CoreDataのSQLを出力する
http://qiita.com/key/items/ef9a0ec34aa6e63ebca9
(2)CoreDataで生成されるsqliteファイルについて
http://hachinobu.hateblo.jp/entry/20121017/1350448899


Add a Comment

メールアドレスが公開されることはありません。