Swift4 RealmにCSVからデータを取り込んだ状態でアプリをリリースする方法についてネット検索していたところ、Swift4に対応した情報が少なかったのでここに個人的メモ。
CSVからRealmへの取り込みは、Swift4でも他のブログ等の掲載情報にて取り込めた。
ちなみに、6万個近くのレコード数でも余裕で取り込めた。
シミュレーターで取り込み処理を走らせて取り込んだRealmデータファイルの場所は下記のコードを実行することで把握できる。
print(Realm.Configuration.defaultConfiguration.fileURL!)
つまづいたのは最後の過程。Xcodeにコピーした*.realmファイルをアプリデフォルトのファイルにする書き方。
過去のネット情報に多くあったRealm.Configuration(readOnly: true, filePath: と書くと通らなかった。
原因を突き詰めると「filePath:」という書き方が現在では通らない。
しかし、「fileURL:」なら通ると分かった。
試行錯誤の結果、次の書き方で通った。下記はXcodeにコピーしたファイル名をdefault.realmとして記述している。
//realmファイルの読み込み設定(読み込み専用モードの場合)
let filePath = URL(fileURLWithPath: Bundle.main.path(forResource: "default", ofType: "realm")!)
let config = Realm.Configuration(fileURL: filePath , readOnly: true)
Realm.Configuration.defaultConfiguration = config
以上、個人的メモ。他の同志の一助になるとこれ幸い。
CSVからRealmへの取り込みは、Swift4でも他のブログ等の掲載情報にて取り込めた。
ちなみに、6万個近くのレコード数でも余裕で取り込めた。
シミュレーターで取り込み処理を走らせて取り込んだRealmデータファイルの場所は下記のコードを実行することで把握できる。
print(Realm.Configuration.defaultConfiguration.fileURL!)
つまづいたのは最後の過程。Xcodeにコピーした*.realmファイルをアプリデフォルトのファイルにする書き方。
過去のネット情報に多くあったRealm.Configuration(readOnly: true, filePath: と書くと通らなかった。
原因を突き詰めると「filePath:」という書き方が現在では通らない。
しかし、「fileURL:」なら通ると分かった。
試行錯誤の結果、次の書き方で通った。下記はXcodeにコピーしたファイル名をdefault.realmとして記述している。
//realmファイルの読み込み設定(読み込み専用モードの場合)
let filePath = URL(fileURLWithPath: Bundle.main.path(forResource: "default", ofType: "realm")!)
let config = Realm.Configuration(fileURL: filePath , readOnly: true)
Realm.Configuration.defaultConfiguration = config
以上、個人的メモ。他の同志の一助になるとこれ幸い。