Realm"Cannot use instance member..... "のエラーについて
Realmを初めて使っている者です。
Realmで単語のデータベースを作り、その初期データを読み込んで単語クイズアプリを作っています。
書籍を参考に読み取り専用で使用する場合のスクリプトを書いてみたのですが、エラーが出てしまいました。
Cannot use instance member 'fileURL' within property initializer; property initializers run before 'self' is available
自分でも調べてみたのですが理解できず、お力をお借りしたいです。
よろしくお願いします。
なお、Xcodeのバージョンは 10.2.1 です。
import UIKit
import RealmSwift
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
//デフォルトRealmnファイルのファイルURL
let defaultFileURL = Realm.Configuration.defaultConfiguration.fileURL!
//新しいデフォルトRealmファイルを生成したいため、存在する場合は削除
if FileManager.default.fileExists(atPath: defaultFileURL.path){
try! FileManager.default.removeItem(at: defaultFileURL)
}
let realm = try! Realm()
print(Realm.Configuration.defaultConfiguration.fileURL!)
let word = Word()
try! realm.write{
word.id = 1
word.noun = "acceptance"
word.verb = "accept"
word.adj = "acceptable"
word.adv = "acceptably"
word.id = 2
word.noun = "preference"
word.verb = "prefer"
word.adj = "preferable"
word.adv = "preferably"
realm.add(word)
}
//最適化したRealmファイルのファイルURL
let fileURL = realm.configuration.fileURL!
.deletingLastPathComponent()
.appendingPathComponent("default-old.realm")
//新しく最適化したRealmファイルを生成したいので存在する場合は削除
if FileManager.default.fileExists(atPath: fileURL.path){
try! FileManager.default.removeItem(at: fileURL)
}
//Realmファイルを別ファイルに保存して(コピー)してファイルサイズを最適化する
try! realm.writeCopy(toFile: fileURL)
}
//初期データの入ったRealmファイルを利用
let oldRealmURL = Bundle.main.url(forResource: "default-old", withExtension: "realm")!
//読み取り専用で使用
let fileURL = Bundle.main.url(forResource: "template", withExtension: "realm")!
let config = Realm.Configuration(fileURL: fileURL, readOnly: true) //ここでエラーが発生
let templateRealm = try! Realm(configuration: config)
}