iOSでsqlite3
iOSでsqlite3を操作するラッパーとしてFMDBというものがあるらしい.
端末にデータを保存するにはNSArray *paths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES );
でアプリ毎に用意されているDocumentsディレクトリを用いる.
シミュレータの場合は
Users/(your accont name)/Library/Application\ Support/iPhone\ Simulator/(version)/Applications/(app id?)/Documents
がDocumentsディレクトリです.ここにDBなどファイルを置くとコードから操作することができます.
app idに関してはわけわかんないですが,思い切ってさらに一階層降りると(app name).appファイルがあるのでその名前からアプリを判断できます.
//DBの呼び出し
NSArray *paths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES );
NSString *dir = [paths objectAtIndex:0];
//自分で作成したデータベースの名前を最後に入力
FMDatabase *db = [FMDatabasedatabaseWithPath:[dir stringByAppendingPathComponent:@"test.db"]];
//時刻の取得
NSDate *date = [NSDate date];
NSDateFormatter* formatter = [[NSDateFormatteralloc] init];
[formatter setDateFormat:@"YYYY_MM_dd_hh_mm_xss"];
NSString *createtime = [formatter stringFromDate:date];
//insert文の入力
//tableはすでに作成されていると仮定
NSString *insert = [[NSStringalloc] initWithFormat:@"INSERT INTO item(type, r, g, b, path, date) VALUES('%d','%d','%d','%d','%@', '%@')", 1, (int)self.rgb[0], (int)self.rgb[1], (int)self.rgb[2], createtime, createtime];
[db open];
//Queryの実行
[db executeUpdate:insert];
[db close];
NSLog(@"done");