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

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

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

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

Xcode

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

Swift

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

Q&A

解決済

2回答

514閲覧

realmで保存したものをtableviewに表示

sam3457

総合スコア52

Realm

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

Xcode

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

Swift

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

0グッド

0クリップ

投稿2018/01/27 03:19

編集2018/01/28 12:35

todoアプリをrealmで作って見たのですが、tableviewに反映されません。
realmの公式サイトや、realmについての記事を見て原因を探していたのですが、自分には何が原因で表示されないのかわかりませんでした。
また、この様な原因を探るためには皆様はどの様な方法で探し出しておりますでしょうか?
イメージ説明
イメージ説明
イメージ説明
イメージ説明

回答でお教え頂いたviewWillApearメソッドをtableviewcontroller.swiftに追加して見ても表示されなかったので、numberOfRowsInSectionメソッドやcellForRowAtメソッドの中にブレークポイントを置いてシュミレータを起動して操作して見たところ、そこでプログラムが止まらなかったのでこれはそもそも呼ばれていないということでしょうか?

そこでviewcontroller.swiftのボタンをタップして保存するメソッドのなかにブレークポイントを打ったところ、保存するもののvalueがnoneとなっていたのでそもそも保存に失敗してるということでしょうか?
イメージ説明

もう一行進めて見た画面です
イメージ説明
イメージ説明

ちなみに http://programming-beginner-memo.com/?p=16 こちらを参考に作りました。

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

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

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

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

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

fuzzball

2018/01/29 02:51

コードはテキストで書いて下さい。
fuzzball

2018/01/29 02:51

TableViewのdataSourceは設定していますか?
sam3457

2018/01/29 05:19

storyboardのtableviewにtableviewcontroller.swiftクラスを紐ずけていませんでした。申し訳ありません。こちらの質問は削除した方がよろしいでしょうか?
fuzzball

2018/01/29 05:21

なぜ削除する必要があるのでしょうか?
sam3457

2018/01/29 06:06

問題の原因が私のケアレスミスでしたので、質問として価値があまりないのかなと思いまして。。
sam3457

2018/01/29 06:12

とは思いましたが、ベストアンサーの方の回答も消えてしまうのは申し訳ない上これから役に立つと思われるので残しておきます。
fuzzball

2018/01/29 06:17

そうですね。一つ思うのは、現在のベストアンサーは実際の解決方法ではないので、「クラスを紐ずけていませんでした」で自己解決にするのが正しいと思います。
sam3457

2018/01/29 06:26

わかりました!修正しておきます。
guest

回答2

0

読み込みについてはnumberOfRowsInSectionメソッドやcellForRowAtメソッドの中にブレークポイントを置いて、そもそも呼ばれているか、取得した変数が想定したものかどうかについて調べるとかどうでしょう?保存についてはrealmならシミュレータの中でもファイルが存在するはずなので、中を見ればきちんと保存されているかどうかを調べることができますね。

今回の場合、おそらくtodo追加画面から戻った時にそれらのメソッドが呼ばれていないことが原因なのではないのかなあと思います。もしそうなら、以下のコードを追加してみてはいかがでしょうか?

Swift

1// このメソッドは画面表示前のタイミングで呼ばれます。 2override func viewWillAppear(animated: Bool) { 3 super.viewWillAppear(animated) 4 self.tableView.reloadData() // データの再読み込み 5}

投稿2018/01/27 08:55

編集2018/01/27 09:00
idonotknow

総合スコア74

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

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

sam3457

2018/01/28 07:55

回答ありがとうございます! そちらのviewWillApearメソッドをtableviewcontroller.swiftに追加して見ても表示されなかったので、 お教えいただいた様にnumberOfRowsInSectionメソッドやcellForRowAtメソッドの中にブレークポイントを置いてシュミレータを起動して操作して見たところ、そこでプログラムが止まらなかったのでこれはそもそも呼ばれていないということでしょうか? また、保存するもののvalueがnoneとなっていたのでそもそも保存に失敗してるということでしょうか?(質問を編集し直して、画像を追加しました。) ちなみに http://programming-beginner-memo.com/?p=16 こちらを参考に作りました。
idonotknow

2018/01/28 11:51

とりあえず、デバッグ中にハイライトになっている行はまだ実行されていないので、もう一行だけ進めてみてください。
sam3457

2018/01/28 12:37

お返事ありがとうございます。 一行進めて見た画面を質問に貼り付けました。 値が入っているということは、保存ができている、、、と見てよろしいのでようか?
idonotknow

2018/01/28 13:41

少なくとも処理は走っているようですね。ひとつ前進です。 ところで、realmを使っているということはアプリを再起動すると追加した(永続化された)データがtableViewに表示されているとおもうのですが、どうでしょうか?それともTodo追加画面から戻ったときだけ表示されないのでしょうか?
sam3457

2018/01/29 02:43

そうなんですよ!再起動してもtableviewにrealmで保存したデータが表示されないんです、、 ということはtableviewのコードが原因と考えるのが妥当ですかね?
sam3457

2018/01/29 02:45

追加画面から戻った時も、再起動した時も表示されないです。。
sam3457

2018/01/29 02:49

ここまで質問していて本当に申し訳ないのですが、storyboardのtableviewにtableviewcontroller.swiftクラスを紐ずけていませんでした。。 初歩的な確認ミス、本当に申し訳ありませんでした。 また、真摯な回答ありがとうございました。
guest

0

自己解決

回答いただいた方、申し訳ありません。
クラスを紐ずけていませんでした。。
紐ずけをしたら、きちんと表示されました。

投稿2018/01/29 06:28

sam3457

総合スコア52

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問