回答編集履歴

3

修正

2016/04/29 11:25

投稿

_Kentarou
_Kentarou

スコア8490

test CHANGED
@@ -1,45 +1,233 @@
1
- [マイグレーションを実行る](https://realm.io/jp/docs/swift/latest/#section-40)
2
-
3
-
4
-
5
- イトに例として記述してある上側の例で記述したら、自分の環境ではうまくいきました。
6
-
7
-
8
-
9
- ```swift
10
-
11
- let config = Realm.Configuration(
12
-
13
- // 新しいスキーマバージョンを設定します。以前のバージョンより大きくなければなりません。
14
-
15
- // (スキーマバージョンを設定したことがなければ、最初は0が設定されています)
16
-
17
- schemaVersion: 1,
18
-
19
-
20
-
21
- // マイグレーション処理を記述します。古いスキーマバージョンのRealmを開こうとすると
22
-
23
- // 自動的にマイグレーションが実行されます。
24
-
25
- migrationBlock: { migration, oldSchemaVersion in
26
-
27
- // 最初のマイグレーションの場合、`oldSchemaVersion`は0です
28
-
29
- if (oldSchemaVersion < 1) {
30
-
31
-
32
-
33
- // 何もする必要はありません!
34
-
35
- // Realmは自動的に新しく追加されたプロパティと、削除されたプロパティを認識します。
36
-
37
- // そしてディスク上のスキーマを自動的にアップデートします。
1
+ 最低限の記述ですがとりあえずマイグレーションが出来ましたので記載しま
2
+
3
+
4
+
5
+ ★ 1回目ンスール実行
6
+
7
+
8
+
9
+ ```swift
10
+
11
+ // AppDelegate -------------
12
+
13
+
14
+
15
+ import UIKit
16
+
17
+ import RealmSwift
18
+
19
+
20
+
21
+ @UIApplicationMain
22
+
23
+ class AppDelegate: UIResponder, UIApplicationDelegate {
24
+
25
+
26
+
27
+ var window: UIWindow?
28
+
29
+
30
+
31
+ func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
32
+
33
+
34
+
35
+ Realm.Configuration.defaultConfiguration = Realm.Configuration(
36
+
37
+ schemaVersion: 0,
38
+
39
+ migrationBlock: { migration, oldSchemaVersion in
40
+
41
+
42
+
43
+ migration.enumerate(Person.className()) { oldObject, newObject in
44
+
45
+
46
+
47
+ if oldSchemaVersion < 1 {
48
+
49
+ newObject?["lastName"] = "MyLastaName"
50
+
51
+ }
52
+
53
+ }
54
+
55
+ })
56
+
57
+ return true
58
+
59
+ }
60
+
61
+ }
62
+
63
+
64
+
65
+
66
+
67
+ // ViewController -------------
68
+
69
+
70
+
71
+ import UIKit
72
+
73
+ import RealmSwift
74
+
75
+
76
+
77
+ class ViewController: UIViewController {
78
+
79
+
80
+
81
+ override func viewDidLoad() {
82
+
83
+ super.viewDidLoad()
84
+
85
+
86
+
87
+ let realm = try! Realm()
88
+
89
+ let person = Person()
90
+
91
+ person.firstName = "MyFirstName"
92
+
93
+ person.age = 20
94
+
95
+ try! realm.write {
96
+
97
+ realm.add(person)
38
98
 
39
99
  }
40
100
 
101
+
102
+
103
+     // ログ出力
104
+
105
+     print(realm.objects(Person)[0])
106
+
107
+
108
+
41
- })
109
+ }
110
+
42
-
111
+ }
112
+
113
+
114
+
115
+ // Model -------------
116
+
117
+
118
+
119
+ import RealmSwift
120
+
121
+
122
+
123
+ // v0
124
+
125
+ class Person: Object {
126
+
127
+ dynamic var firstName = ""
128
+
129
+ dynamic var age = 0
130
+
131
+ }
132
+
43
- ```
133
+ ```
134
+
135
+
136
+
44
-
137
+ ```swift
138
+
45
-
139
+ // Log出力
140
+
141
+ Person {
142
+
143
+ firstName = MyFirstName;
144
+
145
+ age = 20;
146
+
147
+ }
148
+
149
+ ```
150
+
151
+
152
+
153
+ ★ 2回目マイグレーション実行
154
+
155
+
156
+
157
+ ```swift
158
+
159
+
160
+
161
+ 変更場所
162
+
163
+
164
+
165
+ // AppDelegate -------------
166
+
167
+ // 0 => 1
168
+
169
+ schemaVersion: 1,
170
+
171
+
172
+
173
+
174
+
175
+ // ViewController -------------
176
+
177
+
178
+
179
+ // 以下をコメントアウト
180
+
181
+ /*
182
+
183
+ let person = Person()
184
+
185
+ person.firstName = "MyFirstName"
186
+
187
+ person.age = 20
188
+
189
+ try! realm.write {
190
+
191
+ realm.add(person)
192
+
193
+ }
194
+
195
+ */
196
+
197
+
198
+
199
+ // Model -------------
200
+
201
+ // lastNameを追加
202
+
203
+ // v1
204
+
205
+ class Person: Object {
206
+
207
+ dynamic var firstName = ""
208
+
209
+ dynamic var lastName = ""
210
+
211
+ dynamic var age = 0
212
+
213
+ }
214
+
215
+ ```
216
+
217
+
218
+
219
+ ```swift
220
+
221
+ Person {
222
+
223
+ // Log出力
224
+
225
+ firstName = MyFirstName;
226
+
227
+ age = 20;
228
+
229
+ lastName = MyLastaName;
230
+
231
+ }
232
+
233
+ ```

2

修正

2016/04/29 11:25

投稿

_Kentarou
_Kentarou

スコア8490

test CHANGED
@@ -1,12 +1,8 @@
1
- realmのドキュメントと少し書き方が違うようです。
2
-
3
1
  [マイグレーションを実行する](https://realm.io/jp/docs/swift/latest/#section-40)
4
2
 
5
3
 
6
4
 
7
- 以下の様に記述したら、自分の環境ではうまくいきました。
5
+ サイト例として記述してある上側の例で記述したら、自分の環境ではうまくいきました。
8
-
9
- 更にエラーが出るようならば違う問題かも知れません、、、
10
6
 
11
7
 
12
8
 

1

修正

2016/04/29 09:43

投稿

_Kentarou
_Kentarou

スコア8490

test CHANGED
@@ -1,6 +1,12 @@
1
1
  realmのドキュメントと少し書き方が違うようです。
2
2
 
3
3
  [マイグレーションを実行する](https://realm.io/jp/docs/swift/latest/#section-40)
4
+
5
+
6
+
7
+ 以下の様に記述したら、自分の環境ではうまくいきました。
8
+
9
+ 更にエラーが出るようならば違う問題かも知れません、、、
4
10
 
5
11
 
6
12
 
@@ -40,16 +46,4 @@
40
46
 
41
47
  ```
42
48
 
43
- 以下を削除したら大丈夫ではないですか?
44
49
 
45
- 更にエラーが出たら別の問題かもしれませんが、、、
46
-
47
- ```swift
48
-
49
- migration.enumerate(User.className()) { oldObject, newObject in
50
-
51
- newObject!["image"] = ""
52
-
53
- }
54
-
55
- ```