回答編集履歴

2

微調整

2019/01/07 17:05

投稿

hameji001
hameji001

スコア639

test CHANGED
@@ -152,8 +152,4 @@
152
152
 
153
153
  最後にtry「!」と書いたら、エラーは無視するという意味なので、do {} catch {}
154
154
 
155
- を使ってるけど、実際にそこに値が入ることはない。しかも、try のものに try!を被せている。
155
+ を使ってるけど、実際にそこに値が入ることはない。
156
-
157
- let realm = try Realm()
158
-
159
- try! realm(=中身はtry Realm()だから).write {

1

追加

2019/01/07 17:05

投稿

hameji001
hameji001

スコア639

test CHANGED
@@ -121,3 +121,39 @@
121
121
 
122
122
 
123
123
  ```
124
+
125
+
126
+
127
+ [追記]
128
+
129
+ よくありきたりなピットフォールはRealm Objectの構造を途中で変えた場合、
130
+
131
+ 実機orシュミレーターのアプリを一度削除しないとエラーになります。
132
+
133
+ データ構造が変化してるので、以前のファイルが使えない。
134
+
135
+
136
+
137
+ また、コンソールにエラーが出るのでわかると思いますが、
138
+
139
+ Realm Objectの中身の変更は、realm.write{ }内でしか行えない。
140
+
141
+
142
+
143
+ あと、let person = [realmDataSet(value: ["userID": client.restext])]
144
+
145
+ のようにRealmのObjectを[ ]で囲んでdictionaryやArrayにすることはまずない。
146
+
147
+ 理由はRealm自体でDictionaryやArrayが作れて、ほぼDictionaryやArrayと同じ使い勝手だから
148
+
149
+ 取り出した、StringやInt, Doubleなどはもちろん、DictionaryやArrayにすることはあるけど。
150
+
151
+
152
+
153
+ 最後にtry「!」と書いたら、エラーは無視するという意味なので、do {} catch {}
154
+
155
+ を使ってるけど、実際にそこに値が入ることはない。しかも、try のものに try!を被せている。
156
+
157
+ let realm = try Realm()
158
+
159
+ try! realm(=中身はtry Realm()だから).write {