コンテンツへスキップ →

iOSでSQLiteを使う場合の手順

iOSでデータの保存方法はいろいろありますが、はじめてSQLiteを使ってみました。量が多い場合は慣れ親しんだSQLが便利ですね。

sqlite

SQLiteを使う準備

sqlite3.0.dylibを追加

sqlite

かんたんに扱いやすくしてくれるライブラリ「FMDB」を利用

FMDBから、ファイルをDLして解凍後、fmdb.m以外を追加します。
file
参考)iOS で SQLite – FMDB の使い方

SQLiteを使ってみよう

まず、ヘッダファイルで読み込み。
#import “FMDatabase.h”

//DBファイルのパス
NSArray *paths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES );
NSString *dir   = [paths objectAtIndex:0];

//DBファイルがあるかどうか確認
NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath:[dir stringByAppendingPathComponent:@"file.db"]])
{
   //なければ新規作成
   FMDatabase *db= [FMDatabase databaseWithPath:[dir stringByAppendingPathComponent:@"file.db"]];
   NSString *sql = @"CREATE TABLE test (id INTEGER PRIMARY KEY AUTOINCREMENT,testname TEXT);";

   [db open]; //DB開く
   [db executeUpdate:sql]; //SQL実行
   [db close]; //DB閉じる
}

こんな感じでサクッと使えてしまいます。かんたん。

INSERT,UPDATEを使う

SQL文を作って値を入れるところはハテナにしておきます。

NSString *sql=@"insert into test (testname) values (?,?);";

[db open];
[db executeUpdate:sql,値,値];
[db close];

SELECTで取り出し

NSString *sql=@"select * from test where testname = ?;";

[db open];
FMResultSet *results = [db executeQuery:sql,値];
[db close];

while( [results next] ){
     NSString *testname = [results stringForColumn:@"testname"];
}

Macでテスト結果を確認する

シミュレータの場合、DBファイルは
~/Library/Application Support/iPhone Simulator/(iOS バージョン)/Applications/(UUID)/Documentsの中に生成されます。

これをMacの無料アプリ「SQLite Database Browser」で見ると便利です。
sqlite2

[sc name=”ios”][sc name=”engeneer”]

SHARE

無料メルマガ<特典付き>

個人開発・ビジネスについての有益な情報を無料メルマガでお届けします。

特典:個人開発の教科書<心得編>
これまでの個人開発経験を秘伝のタレ的な内容としてエッセンスをまとめました。35ページにわたる大ボリュームです。

個人開発のスキルアップにMENTA

MENTAはいろんなプロに相談できるNo1メンターサービスです。

僕自身もプロダクトの壁打ち・相談にのっています。個人開発でもコードレビュー、セキュリティ面のチェック、デザイン、広告、コンテンツマーケ、SNS集客について相談する、など使えます。

YouTubeでも個人開発ノウハウを発信中!

PROFILE

入江 慎吾
あらゆるスキルが学べるパーソナルメンターサービスMENTAの代表/個人開発が好きでこれまでに30個ほどのWEBサービスやアプリを作ってきました/福岡のWEB制作会社勤務→フリーランスエンジニア→法人立ち上げ→M&A億単位の売却を経験。 (詳しいプロフィール)

カテゴリー: 開発奮闘記