質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Realm

RealmとはSQLiteやCore Dataに代わるモバイルデータベースです。iOSとAndroidの両方でサポートされています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

624閲覧

realmで保存した値がアプリ終了すると消えてしまう

ptpt

総合スコア22

Realm

RealmとはSQLiteやCore Dataに代わるモバイルデータベースです。iOSとAndroidの両方でサポートされています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2018/09/03 04:48

編集2018/09/03 05:04

前提・実現したいこと

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fuzzball

2018/09/03 04:58

「消えている」の根拠は「ここでcountが初期値の0から10に変わっている」でしょうか?problemAnswerArrayとは何なのでしょうか?
ptpt

2018/09/03 05:06

「ここでcountが初期値の0から10に変わっている」は期待通りの動作です。アプリ終了すると0に戻ってしまいます。problemAnswerArrayはString型のArrayです。別のクラスで値が格納されます。
t_obara

2018/09/03 05:16

realmにデータを保存していますが、読み込みはどこでしているのですか?
fuzzball

2018/09/03 05:17

では、期待通りではない動作の場合がどうなのか書いて下さい。あと、Databaseクラスのイニシャライザも書いて下さい。
退会済みユーザー

退会済みユーザー

2018/09/03 06:21

直接中身を覗かれては? Realm Browser or Realm Studio
guest

回答1

0

自己解決

読み込みを理解していませんでした。
読み込みを正しく記述したらうまくいきました。
アドバイスをくださった皆さんありがとうございました。

投稿2018/09/05 08:38

ptpt

総合スコア22

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問