HOME > SQLiteを使いたい。ラッパーを検証してみる。
SQLiteを使いたい。Objective-Cの時はMagicalRecordでCoreDataを利用していたのですが、 今回はSQLite+Swiftでトライしてみたいと思います。ざっと調査すると、SwiftでSQLiteを使うのは、FMDB, SwiftData, SQLite.swiftがあるみたいです。この三つのラッパーから好みのものを選ぶのが目標です。
なんとなくですが、FMDBを勧めている記事が多いですね。昔の人気?今も人気なのかもしれませんがどうなんだろうか。
参考:SwiftでSQLiteを使う(SwiftData)
参考:[iOS8] SwiftData(Swift製SQLiteラッパー)を使ったMVCサンプル
参考:SwiftからSQLiteを扱う(FMDB)
参考:[iOS] SQLite.swift ライブラリを使いたい! その1
参考:Accessing an SQLite Database in Swift
参考:SwiftDataを徹底的に解説!これでDB怖くない!(永久保存版)
参考:SwiftでSQLiteラッパーライブラリのFMDBを使ってみよう
それではInsertしてSelectするまでの流れを実行してみようと思います。Bridgeヘッダやライブラリのリンク設定周りは割愛します。
セットアップ後にどれだけ使いやすいかを判断したいと思います。
過去記事の参考:Objective-Cとの共存
↓
とテストをトライしようとFMDBをさわりはじめましたが、検証にはデータベースファイル(db)が必要でしたので以下サイトからdbファイルをダウンロードして検証しています 参考:Get Ready to Learn SQL: 1. How to Install SQLite and the Sample Database
↓
sqliteのdbをChromeでみれるリーダーも探す。FireFoxのSQLManagerみたいなものがあれば、、、評価がよくないですが、以下のSQLite Database browserをインストールして確認してみる
参考:How do you use SQLite with Chrome?
参考:SQLite Database Browser (Beta)
↓
と拡張機能をChromeにインスールやりかけましたが、どうも必須らしいSiverlightを入れてもインストール完了しない、、、、止めた。時間がないのでFireFoxに切り替えます。 最近ChromeばっかりだったのでFireFoxをMacにダウンロードしていませんでした、41MB。。。デザリング住民には厳しいです。
↓
最新版のFirefoxいれてSQLite Managerもいれてみました。とここで、、、、FireFoxかなり速くなってる???
昔FirefoxからChromeにかわったとき体感速度が全然違かったけど、逆の感覚。FireFoxも速くなってるんですね!IEも
次のバージョンは改善されているようですので楽しみです。
参考:SQLite Manager 0.8.3.1-signed
↓
SQLite Managerでsample.sqliteを作成。これをXCodeプロジェクトのDocumentディレクトリに配置(プロジェクトにドラッグ&Drop)ひとまず これで準備は完了。と願いつつ進みます。
まずは一番人気のFMDBです。
参考:SwiftからSQLiteを扱う(FMDB)
参考:FMDB : Linker command failed with exit code 1
と、トライしてましたが以下エラーで止まって時間切れ、、、
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_", referenced from:
__TMaCSo10FMDatabase in ViewController.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
以下のあたりが参考になりそう
参考:XcodeでビルドしたOpenCVを参照するC++コードのビルド時のUndefined symbols for architecture x86_64
(上記解決しました)以下のURLにあったように、一度FMDBを削除して改めてドラッグ&ドロップすると解消しました。
どうやらFMDBからlibsqlite3.0.dylibが読み込めていない状態だったようです。ってわからないorz
参考: FMDB : Linker command failed with exit code 1
SQLite Managerをインストールしてたりコンパイルエラーを改善していると検証する前に撃沈してしまいました。。。検証はまた明日トライします!
2021-05-14 14:21:41 | WatchOSのwatchconnectivityのFiletransferの落とし穴。と、避け方。
AppleWatch 実機だと成功するんだけど、シュミレーターだと失敗するという、、、
昔作成してた時は成功してたのになーと思って調べると、どうやら昔は成功してたみたい。watchOS6以降は... |
2021-05-06 14:04:37 | LINEのアニメーションスタンプ制作の落とし穴、、、失敗談
ゴールデンウィークにLINEスタンプを作成してみました。
作り切って申請も通したんですが、意図したアニメーションと違う、、、、
LINEクリエーターの画面だと、アニメーションのプレビュー... |
2021-05-01 18:05:35 | 久しぶりのAdmobをobjective-cに実装。コンパイルエラーだらけ。バーミッション不具合でエミュレータにインスコできない。
忘れないようにメモ
エミュレータにアプリをインストールする際にパーミッション系のエラーがでた時、また、iphone実機にインストールする際にも権限系のエラーが出る場合。
ターゲット→ex... |
Tweet | |||
|