質問編集履歴

2

realmmodelのコードを追加しました。

2019/05/29 15:31

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -132,6 +132,156 @@
132
132
 
133
133
 
134
134
 
135
+ ###追記
136
+
137
+ MyModelにData型をUIImageに変換するコードを書いています.
138
+
139
+ このように書いているため、Data型⇄UIImage型の変換するコードをviewControllerに記述することなく、保存、読み込みを行うことを可能にしています。
140
+
141
+ ```MyModel
142
+
143
+ import Foundation
144
+
145
+ import RealmSwift
146
+
147
+
148
+
149
+ final class MyModel: Object {
150
+
151
+
152
+
153
+ static let realm = try! Realm()
154
+
155
+
156
+
157
+ @objc dynamic var id:Int = 0
158
+
159
+ @objc dynamic var imageTitle: String = ""
160
+
161
+ @objc dynamic var subImageTitle: String = ""
162
+
163
+ @objc dynamic private var _widgetImage: UIImage? = nil
164
+
165
+ @objc dynamic var widgetImage: UIImage? {
166
+
167
+ set {
168
+
169
+ self._widgetImage = newValue
170
+
171
+ if let value = newValue{
172
+
173
+ self.imageData = value.jpegData(compressionQuality: 1)
174
+
175
+ }
176
+
177
+ }
178
+
179
+ get {
180
+
181
+ if let image = self._widgetImage{
182
+
183
+ return image
184
+
185
+ }
186
+
187
+ if let data = self.imageData{
188
+
189
+ self._widgetImage = UIImage(data: data)
190
+
191
+ return self._widgetImage
192
+
193
+ }
194
+
195
+ return nil
196
+
197
+ }
198
+
199
+ }
200
+
201
+ @objc dynamic private var imageData: Data? = nil
202
+
203
+
204
+
205
+ override static func primaryKey() -> String? {
206
+
207
+ return "id"
208
+
209
+ }
210
+
211
+ override static func ignoredProperties() -> [String]{
212
+
213
+ return ["widgetimage", "_widgetImage"]
214
+
215
+ }
216
+
217
+ static func lastId() -> Int{
218
+
219
+ if let widgetData = realm.objects(MyModel.self).sorted(byKeyPath: "id", ascending: true).last{
220
+
221
+ return widgetData.id + 1
222
+
223
+ }else{
224
+
225
+ return 0
226
+
227
+ }
228
+
229
+ }
230
+
231
+ static func creat() -> MyModel{
232
+
233
+ let widgetData = MyModel()
234
+
235
+ widgetData.id = lastId()
236
+
237
+ return widgetData
238
+
239
+ }
240
+
241
+ func delete(number: Int){
242
+
243
+ let result = MyModel.realm.objects(MyModel.self).filter("id = (number)")
244
+
245
+ try! MyModel.realm.write {
246
+
247
+ MyModel.realm.delete(result)
248
+
249
+ }
250
+
251
+ }
252
+
253
+ func save(){
254
+
255
+ try!MyModel.realm.write{
256
+
257
+ MyModel.realm.add(self)
258
+
259
+ }
260
+
261
+ }
262
+
263
+ static func loadAll() -> [MyModel]{
264
+
265
+ let widgetDatas = realm.objects(MyModel.self).sorted(byKeyPath: "id", ascending: true)
266
+
267
+ var array: [MyModel] = []
268
+
269
+ for widgetData in widgetDatas{
270
+
271
+ array.append(widgetData)
272
+
273
+ }
274
+
275
+ return array
276
+
277
+ }
278
+
279
+ }
280
+
281
+ ```
282
+
283
+
284
+
135
285
  ### 補足情報(FW/ツールのバージョンなど)
136
286
 
137
287
  swift4

1

テキストの場合どのような値が入っているかを追記しました。

2019/05/29 15:31

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -116,6 +116,22 @@
116
116
 
117
117
 
118
118
 
119
+ ###追記
120
+
121
+ テキストの場合はこのように表示されます。
122
+
123
+ ```TodayViewController
124
+
125
+ po result?.imageTitle
126
+
127
+ ▿ Optional<String>
128
+
129
+ - some : "テスト"
130
+
131
+ ```
132
+
133
+
134
+
119
135
  ### 補足情報(FW/ツールのバージョンなど)
120
136
 
121
137
  swift4