前提・実現したいこと
Realmを使って値を保存し、アプリ終了後もその値を利用したい。
特にdatabaseインスタンスのcountプロパティが起点になっているが初期値に戻っている。
発生している問題・エラーメッセージ
アプリ終了後に保存した値が消えてしまう アプリ終了前までは値は存在する
該当のソースコード
swift
1@UIApplicationMain 2class AppDelegate: UIResponder, UIApplicationDelegate { 3 4 var window: UIWindow? 5 var problemAnswerArray: Array<String> = [] 6} 7 8var app: AppDelegate = UIApplication.shared.delegate as! AppDelegate 9var database:Database! = Database() 10 11override func viewDidLoad() { 12 super.viewDidLoad() 13 do{ 14 let realm = try Realm() 15 16 try! realm.write{ 17 database.count += (app.problemAnswerArray.count / 6)//ここでcountが正常に初期値の0から10に変わっている 18 19 realm.add(database) 20 } 21 }catch{ 22 print("失敗") 23 } 24 } 25 26func setTitle(){ 27 28 let setDateFormatter = DateFormatter() 29 setDateFormatter.locale = Locale(identifier: "ja_JP") 30 31 setDateFormatter.timeStyle = .medium 32 setDateFormatter.dateStyle = .short 33 34 35 switch database.count{ 36 case 0: 37 break 38 case 10: 39 40 do{ 41 let realm = try Realm() 42 43 try! realm.write { 44 database.day0String = setDateFormatter.string(from:Date()) 45 latest.setTitle(database.day0String, for: .normal) 46 47 realm.add(database) 48 49 print(database) 50 } 51 }catch{ 52 print("失敗") 53 } 54 55 default: 56 break 57 } 58 }
試したこと
Google検索
補足情報(FW/ツールのバージョンなど)
swift4
「消えている」の根拠は「ここでcountが初期値の0から10に変わっている」でしょうか?problemAnswerArrayとは何なのでしょうか?
「ここでcountが初期値の0から10に変わっている」は期待通りの動作です。アプリ終了すると0に戻ってしまいます。problemAnswerArrayはString型のArrayです。別のクラスで値が格納されます。
realmにデータを保存していますが、読み込みはどこでしているのですか?
では、期待通りではない動作の場合がどうなのか書いて下さい。あと、Databaseクラスのイニシャライザも書いて下さい。
直接中身を覗かれては? Realm Browser or Realm Studio
回答1件
あなたの回答
tips
プレビュー