質問編集履歴

10

写真を追加

2019/06/12 13:17

投稿

AppDvl
AppDvl

スコア58

test CHANGED
File without changes
test CHANGED
@@ -50,6 +50,10 @@
50
50
 
51
51
 
52
52
 
53
+ ![イメージ説明](15fdbc6b44fe8e01bfe6a6f8eff0f668.png)
54
+
55
+
56
+
53
57
 
54
58
 
55
59
  呼び出し方がおかしいのでしょうか?

9

誤字

2019/06/12 13:17

投稿

AppDvl
AppDvl

スコア58

test CHANGED
File without changes
test CHANGED
@@ -44,7 +44,7 @@
44
44
 
45
45
 
46
46
 
47
- 直前のprintアウトでpathを出力すると”保存先のpahtは**「Optional(file:///var/mobile/Containers/Data/Application/143D63DA-BEEC-4BE8-9E10-4F1609E6B48C/Documents/photo2.jpg)を探しています。**が表示されるのでパスは保存できています。
47
+ 直前のprintアウトでpathを出力すると”保存先のpahtは**file:///var/mobile/Containers/Data/Application/6B28AC39-64FF-4E4E-BE45-19FA15297AB6/Documents/photo2.jpgを探しています。**が表示されるのでパスは保存できています。
48
48
 
49
49
  ドキュメントフォルダも確認しましたがphoto2.jpgは存在しています。
50
50
 

8

誤字

2019/06/11 10:43

投稿

AppDvl
AppDvl

スコア58

test CHANGED
File without changes
test CHANGED
@@ -114,7 +114,7 @@
114
114
 
115
115
 
116
116
 
117
- 試しにif let の箇所を下記のように書き換えてみました。
117
+ 試しにif let の箇所を下記のように書き換えてみました。
118
118
 
119
119
  ```
120
120
 

7

追記

2019/06/11 07:06

投稿

AppDvl
AppDvl

スコア58

test CHANGED
File without changes
test CHANGED
@@ -110,6 +110,8 @@
110
110
 
111
111
 
112
112
 
113
+ 試しに !=nil に書き換えても結果はfalseでした。
114
+
113
115
 
114
116
 
115
117
  試しにif let の箇所を下記のように書き換えてみあました。

6

誤字

2019/06/10 12:42

投稿

AppDvl
AppDvl

スコア58

test CHANGED
File without changes
test CHANGED
@@ -110,7 +110,61 @@
110
110
 
111
111
 
112
112
 
113
+
114
+
115
+ 試しにif let の箇所を下記のように書き換えてみあました。
116
+
117
+ ```
118
+
119
+
120
+
121
+
122
+
123
+ func loadImage(){
124
+
125
+ // ③UserDefaultsの情報を参照してpath指定に使う
126
+
127
+ guard let url = UserDefaults.standard.url(forKey: "userImage") else { return } // URL取得なし
128
+
129
+ print("(url.absoluteString)を探しています。")
130
+
131
+ let a:String? = "Swift"
132
+
133
+ if let test = a {
134
+
135
+ // if let image = UIImage(contentsOfFile: url.absoluteString) {
136
+
137
+ // let image = UIImageView(image: image)
138
+
139
+ // imageView.image = image.image
140
+
141
+ // imageView.contentMode = UIView.ContentMode.scaleAspectFill
142
+
113
- パスをprintアウトしてみましたが、保存は出来ているようです。
143
+ print("指定されたファイルが見つかりました")
144
+
145
+ }else{
146
+
147
+ print("指定されたファイルが見つかりません")
148
+
149
+ }
150
+
151
+ ```
152
+
153
+
154
+
155
+
156
+
157
+ 結果(プリントアウト)は
158
+
159
+ file:///var/mobile/Containers/Data/Application/7EBE7926-90A7-4190-9CF8-6B2D14CB6244/Documents/photo2.jpgを探しています。
160
+
161
+ 指定されたファイルが見つかりました
162
+
163
+
164
+
165
+ となります。当然ですが。
166
+
167
+
114
168
 
115
169
 
116
170
 

5

誤字

2019/06/10 11:51

投稿

AppDvl
AppDvl

スコア58

test CHANGED
File without changes
test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- ### 該当のソースコード(urlをStringに変換した)
9
+ ### 該当のソースコード(urlをStringに変換した)
10
10
 
11
11
  ```
12
12
 

4

頂いたアドバイスのとおりに書き換えてみた

2019/06/10 11:38

投稿

AppDvl
AppDvl

スコア58

test CHANGED
File without changes
test CHANGED
@@ -6,19 +6,19 @@
6
6
 
7
7
 
8
8
 
9
- ### 該当のソースコード
9
+ ### 該当のソースコード(urlをStringに変換したあ)
10
+
10
-
11
+ ```
12
+
11
- ```func loadImage(){
13
+ func loadImage(){
12
14
 
13
15
  // ③UserDefaultsの情報を参照してpath指定に使う
14
16
 
15
- let path = String(describing: UserDefaults.standard.url(forKey: "userImage"))
17
+ guard let url = UserDefaults.standard.url(forKey: "userImage") else { return } // URL取得なし
16
-
18
+
17
- print("(path)を探しています。")
19
+ print("(url.absoluteString)を探しています。")
18
-
19
-
20
-
20
+
21
- if let image = UIImage(contentsOfFile: path) {       ////////////////////ここがおかしい?////////////////
21
+ if let image = UIImage(contentsOfFile: url.absoluteString) {
22
22
 
23
23
  let image = UIImageView(image: image)
24
24
 
@@ -34,7 +34,7 @@
34
34
 
35
35
  }
36
36
 
37
- コード
37
+ }
38
38
 
39
39
  ```
40
40
 
@@ -68,19 +68,25 @@
68
68
 
69
69
  ```
70
70
 
71
- 2019-06-09 22:41:34.908004+0900 Wood volume[14328:2658816] [Accessibility] ****************** Loading GAX Client Bundle ****************
71
+ 2019-06-10 20:32:48.277909+0900 Wood volume[15167:2836174] [Accessibility] ****************** Loading GAX Client Bundle ****************
72
-
73
- cells=2
72
+
74
-
75
- Optional(file:///var/mobile/Containers/Data/Application/143D63DA-BEEC-4BE8-9E10-4F1609E6B48C/Documents/photo2.jpg)を探しています。
73
+ file:///var/mobile/Containers/Data/Application/6B28AC39-64FF-4E4E-BE45-19FA15297AB6/Documents/photo2.jpgを探しています。
76
74
 
77
75
  指定されたファイルが見つかりません
78
76
 
79
- 2019-06-09 22:41:38.451928+0900 Wood volume[14328:2658816] [MC] System group container for systemgroup.com.apple.configurationprofiles path is /private/var/containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles
80
-
81
- 2019-06-09 22:41:38.452990+0900 Wood volume[14328:2658816] [MC] Reading from public effective user settings.
82
-
83
- 写真はOptional(file:///var/mobile/Containers/Data/Application/143D63DA-BEEC-4BE8-9E10-4F1609E6B48C/Documents/photo2.jpg)に保存されました。
77
+ 2019-06-10 20:32:57.491298+0900 Wood volume[15167:2836174] [MC] System group container for systemgroup.com.apple.configurationprofiles path is /private/var/containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles
78
+
79
+ 2019-06-10 20:32:57.494345+0900 Wood volume[15167:2836174] [MC] Reading from public effective user settings.
80
+
81
+ pathを作りました。pathはfile:///var/mobile/Containers/Data/Application/6B28AC39-64FF-4E4E-BE45-19FA15297AB6/Documents/photo2.jpg
82
+
83
+ 写真はfile:///var/mobile/Containers/Data/Application/6B28AC39-64FF-4E4E-BE45-19FA15297AB6/Documents/photo2.jpgに保存されました。
84
+
85
+ file:///var/mobile/Containers/Data/Application/6B28AC39-64FF-4E4E-BE45-19FA15297AB6/Documents/photo2.jpgを探しています。
86
+
87
+ 指定されたファイルが見つかりません
88
+
89
+
84
90
 
85
91
  ```
86
92
 
@@ -204,7 +210,7 @@
204
210
 
205
211
 
206
212
 
207
- //保存から呼び出し〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
213
+ //保存から呼び出し〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
208
214
 
209
215
  // ①パスの生成
210
216
 
@@ -242,6 +248,10 @@
242
248
 
243
249
  documentDirectoryFileURL = path
244
250
 
251
+
252
+
253
+ print("pathを作りました。pathは(documentDirectoryFileURL)")
254
+
245
255
  }
246
256
 
247
257
  }
@@ -280,17 +290,17 @@
280
290
 
281
291
  }
282
292
 
283
- **
293
+
284
294
 
285
295
  func loadImage(){
286
296
 
287
297
  // ③UserDefaultsの情報を参照してpath指定に使う
288
298
 
289
- let path = String(describing: UserDefaults.standard.url(forKey: "userImage"))
299
+ guard let url = UserDefaults.standard.url(forKey: "userImage") else { return } // URL取得なし
290
-
300
+
291
- print("(path)を探しています。")
301
+ print("(url.absoluteString)を探しています。")
292
-
302
+
293
- if let image = UIImage(contentsOfFile: path) {
303
+ if let image = UIImage(contentsOfFile: url.absoluteString) {
294
304
 
295
305
  let image = UIImageView(image: image)
296
306
 
@@ -306,11 +316,11 @@
306
316
 
307
317
  }
308
318
 
309
- }**
319
+ }
310
320
 
311
321
 
312
322
 
313
- //〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜保存から呼び出し
323
+ //〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜保存から呼び出し
314
324
 
315
325
 
316
326
 
@@ -334,7 +344,7 @@
334
344
 
335
345
  //値を受け取る
336
346
 
337
- //Optional Binding を使ってあげて、 if let memo = self.memo で memo に self.memo をセットしつつ、もし値がセットされていたら、 textField に memo を渡してあげれば OK でしょう。
347
+ //Optional Binding を使ってあげて、 if let memo = self.memo で memo に self.memo をセットしつつ、もし値がセットされていたら、 textField に memo を渡してあげれば OK
338
348
 
339
349
  if let memo = self.memo{
340
350
 
@@ -356,11 +366,7 @@
356
366
 
357
367
  }
358
368
 
359
-
360
-
361
-
362
-
363
-
369
+
364
370
 
365
371
 
366
372
 
@@ -388,9 +394,9 @@
388
394
 
389
395
  }
390
396
 
391
- //cancel の場合は特に渡すデータもないので、単にこのモーダル(画面)を消してあげれば OK ですね。
397
+
392
-
393
- //どうするかというと dismiss という命令が使えるので self.dismiss( … のように書いてあげましょう
398
+
399
+
394
400
 
395
401
  @IBAction func cancel(_ sender: Any) {
396
402
 
@@ -398,7 +404,7 @@
398
404
 
399
405
 
400
406
 
401
-
407
+
402
408
 
403
409
  if self.presentingViewController is
404
410
 
@@ -458,4 +464,6 @@
458
464
 
459
465
 
460
466
 
467
+
468
+
461
- ```
469
+ ```

3

コードを追加しました。

2019/06/10 11:38

投稿

AppDvl
AppDvl

スコア58

test CHANGED
@@ -1 +1 @@
1
- ドキュメント保存したUIImageが表示でき
1
+ if let 条件分岐が常falseる。
test CHANGED
@@ -1,16 +1,52 @@
1
1
  ###
2
2
 
3
+
4
+
5
+ 下記のcodeのfunc loadImage()で条件分岐をしています。
6
+
7
+
8
+
9
+ ### 該当のソースコード
10
+
11
+ ```func loadImage(){
12
+
13
+ // ③UserDefaultsの情報を参照してpath指定に使う
14
+
15
+ let path = String(describing: UserDefaults.standard.url(forKey: "userImage"))
16
+
17
+ print("(path)を探しています。")
18
+
19
+
20
+
21
+ if let image = UIImage(contentsOfFile: path) {       ////////////////////ここがおかしい?////////////////
22
+
23
+ let image = UIImageView(image: image)
24
+
25
+ imageView.image = image.image
26
+
27
+ imageView.contentMode = UIView.ContentMode.scaleAspectFill
28
+
3
- userDefaultsでJPEGのファイルパスを保存しました。が呼び出せません。
29
+ print("指定されたファイルが見つかりました")
30
+
4
-
31
+ }else{
32
+
5
-
33
+ print("指定されたファイルが見つかりません")
34
+
6
-
35
+ }
36
+
37
+ コード
38
+
39
+ ```
40
+
41
+ これ→**( if let image = UIImage(contentsOfFile: path))**が常にfalseになってuserDefaultsでファイルパスを保存したJPEGが呼び出せません。
42
+
7
- ファイルパスを使い③のところで保存したJPEGをimageView.image に 入れたいです。
43
+ JPEGをimageView.image に 入れたいです。
8
-
9
-
10
-
44
+
45
+
46
+
11
- 直前のprintアウトでpathを出力すると”保存先のpahtはfile:///var/mobile/Containers/Data/Application/560C6943-B276-422D-BCFE-9B5C68E85AC6/Documents/photo2.jpgが表示されるのでパスは保存できています。
47
+ 直前のprintアウトでpathを出力すると”保存先のpahtは**「Optional(file:///var/mobile/Containers/Data/Application/143D63DA-BEEC-4BE8-9E10-4F1609E6B48C/Documents/photo2.jpg)を探しています。」**が表示されるのでパスは保存できています。
12
-
48
+
13
- ドキュメントも確認しましたがphoto2.jpgは存在しています。
49
+ ドキュメントフォルダも確認しましたがphoto2.jpgは存在しています。
14
50
 
15
51
 
16
52
 
@@ -18,15 +54,35 @@
18
54
 
19
55
  呼び出し方がおかしいのでしょうか?
20
56
 
21
- 保存したJPEGをUIImageを表示する方法を教えてください。
22
-
23
-
24
-
25
- 初歩的なことかもしれないけどお願ます。
26
-
27
-
28
-
29
- ![イメージ説明](c2c5e715fa9c3f08b36d8c75bff270f1.png)
57
+ 保存したJPEGをimageView.image を表示する方法を教えてください。
58
+
59
+
60
+
61
+ **初歩的なことかもしれないけど悩んでいます。
62
+
63
+ どなたかご教授ください、お願いします。**
64
+
65
+
66
+
67
+ ### プリントアウト
68
+
69
+ ```
70
+
71
+ 2019-06-09 22:41:34.908004+0900 Wood volume[14328:2658816] [Accessibility] ****************** Loading GAX Client Bundle ****************
72
+
73
+ cells=2
74
+
75
+ Optional(file:///var/mobile/Containers/Data/Application/143D63DA-BEEC-4BE8-9E10-4F1609E6B48C/Documents/photo2.jpg)を探しています。
76
+
77
+ 指定されたファイルが見つかりません
78
+
79
+ 2019-06-09 22:41:38.451928+0900 Wood volume[14328:2658816] [MC] System group container for systemgroup.com.apple.configurationprofiles path is /private/var/containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles
80
+
81
+ 2019-06-09 22:41:38.452990+0900 Wood volume[14328:2658816] [MC] Reading from public effective user settings.
82
+
83
+ 写真はOptional(file:///var/mobile/Containers/Data/Application/143D63DA-BEEC-4BE8-9E10-4F1609E6B48C/Documents/photo2.jpg)に保存されました。
84
+
85
+ ```
30
86
 
31
87
 
32
88
 
@@ -38,139 +94,225 @@
38
94
 
39
95
  エラーは出ていません
40
96
 
41
- ```
42
-
43
-
44
-
45
- ### 該当のソースコード
46
-
47
-
48
-
49
- ```swift
50
-
51
- // ③UserDefaultsの情報を参照してpath指定に使
52
-
53
- let urlPath = String(describing: UserDefaults.standard.url(forKey: "userImage")!)
54
-
55
- print("保存先のpahtは(urlPath)")
97
+
98
+
99
+ ```
100
+
101
+
102
+
103
+ ### 試したこと
104
+
105
+
106
+
107
+ パスをprintアウトしてみましたが、保存は出来ているよです。
108
+
109
+
110
+
111
+
112
+
113
+ ### ソース全文
114
+
115
+ ```
116
+
117
+ //
118
+
119
+ // MemoViewController.swift
120
+
121
+ // Wood volume
122
+
123
+ //
124
+
125
+ // Created by MBP13 on 2019/05/09.
126
+
127
+ // Copyright © 2019 Tomoyuki Ashikari. All rights reserved.
128
+
129
+ //
130
+
131
+
132
+
133
+ import UIKit
134
+
135
+ import MapKit
136
+
137
+
138
+
139
+ class MemoViewController: UIViewController ,UIImagePickerControllerDelegate,UINavigationControllerDelegate {
140
+
141
+ @IBOutlet weak var saveButton: UIBarButtonItem!
142
+
143
+
144
+
145
+ var memo: String?//saveボタン用
146
+
147
+
148
+
149
+ // @IBOutlet weak var map: MKMapView!
150
+
151
+ @IBOutlet weak var memoTextField: UITextField!
152
+
153
+ @IBOutlet weak var imageView: UIImageView!
154
+
155
+ @IBAction func launchCamera(_ sender: UIButton) {
156
+
157
+ let camera = UIImagePickerController.SourceType.camera //入力方法を指定し代入
158
+
159
+ if UIImagePickerController.isSourceTypeAvailable(camera){ //カメラ機能があるか確認
160
+
161
+ let picker = UIImagePickerController() //モーダルビューコントローラーの作成
162
+
163
+ picker.sourceType = camera //入力方法cameraをモーダルビューコントローラーに指定
164
+
165
+ picker.delegate = self
166
+
167
+ self.present(picker,animated: true)//前に出す
168
+
169
+ }
170
+
171
+ }
172
+
173
+ @IBOutlet weak var map: MKMapView!
174
+
175
+
176
+
177
+
178
+
179
+
180
+
181
+
182
+
183
+ //写真を撮影した後の処理
184
+
185
+ func imagePickerController(_ picker: UIImagePickerController,
186
+
187
+ didFinishPickingMediaWithInfo info : [UIImagePickerController.InfoKey : Any]){//写真を辞書infoに格納する
188
+
189
+ let image = info[UIImagePickerController.InfoKey.originalImage] as! UIImage // キーを使って辞書infoからオリジナル画像を取り出す
190
+
191
+ self.imageView.image = image
192
+
193
+ // let coordinate = info[UIImagePickerController.InfoKey.mediaMetadata] as! String //メタデータ
194
+
195
+ // print(coordinate)
196
+
197
+
198
+
199
+ UIImageWriteToSavedPhotosAlbum(image,nil,nil,nil)//アルバムに保存
200
+
201
+ self.dismiss(animated: true)//モーダルビューを非表示に
202
+
203
+ }
204
+
205
+
206
+
207
+ //保存から呼び出し〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
208
+
209
+ // ①パスの生成
210
+
211
+ //UserDefaults のインスタンス生成
212
+
213
+ let userDefaults = UserDefaults.standard
214
+
215
+ // ドキュメントディレクトリの「ファイルURL」(URL型)定義
216
+
217
+ var documentDirectoryFileURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
218
+
219
+ // ドキュメントディレクトリの「パス」(String型)定義
220
+
221
+ let filePath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]
222
+
223
+
224
+
225
+
226
+
227
+ //②保存するためのパスを作成する
228
+
229
+ func createLocalDataFile() {
230
+
231
+ // 作成するテキストファイルの名前
232
+
233
+ let fileName = "photo(cells).jpg"
234
+
235
+ // DocumentディレクトリのfileURLを取得
236
+
237
+ if documentDirectoryFileURL != nil {
238
+
239
+ // ディレクトリのパスにファイル名をつなげてファイルのフルパスを作る
240
+
241
+ let path = documentDirectoryFileURL.appendingPathComponent(fileName)
242
+
243
+ documentDirectoryFileURL = path
244
+
245
+ }
246
+
247
+ }
248
+
249
+
250
+
251
+ //画像を保存する関数の部分
252
+
253
+ func saveImage() {
254
+
255
+ createLocalDataFile()
256
+
257
+ //pngで保存する場合
258
+
259
+ let jpeImageData = imageView.image!.jpegData(compressionQuality: 0.5 )
260
+
261
+ do {
262
+
263
+ try jpeImageData!.write(to: documentDirectoryFileURL)
264
+
265
+ //②「Documents下のパス情報をUserDefaultsに保存する」
266
+
267
+ userDefaults.set(documentDirectoryFileURL, forKey: "userImage")
268
+
269
+ let path = String(describing: UserDefaults.standard.url(forKey: "userImage"))
270
+
271
+ print("写真は(path)に保存されました。")
272
+
273
+ } catch {
274
+
275
+ //エラー処理
276
+
277
+ print("エラー")
278
+
279
+ }
280
+
281
+ }
282
+
283
+ **
284
+
285
+ func loadImage(){
286
+
287
+ // ③UserDefaultsの情報を参照してpath指定に使う
288
+
289
+ let path = String(describing: UserDefaults.standard.url(forKey: "userImage"))
290
+
291
+ print("(path)を探しています。")
292
+
293
+ if let image = UIImage(contentsOfFile: path) {
294
+
295
+ let image = UIImageView(image: image)
296
+
297
+ imageView.image = image.image
298
+
299
+ imageView.contentMode = UIView.ContentMode.scaleAspectFill
300
+
301
+ print("指定されたファイルが見つかりました")
302
+
303
+ }else{
304
+
305
+ print("指定されたファイルが見つかりません")
306
+
307
+ }
308
+
309
+ }**
56
310
 
57
311
 
58
312
 
59
- self.imageView.image = UIImage(contentsOfFile: urlPath)
60
-
61
- ```
62
-
63
-
64
-
65
- ### 試したこと
66
-
67
-
68
-
69
- パスをprintアウトしてみましたが、保存は出来ているようです。
70
-
71
-
72
-
73
-
74
-
75
- ### ソース全文
76
-
77
- ```
78
-
79
- //
80
-
81
- // MemoViewController.swift
82
-
83
- // Wood volume
84
-
85
- //
86
-
87
- // Created by MBP13 on 2019/05/09.
88
-
89
- // Copyright © 2019 Tomoyuki Ashikari. All rights reserved.
90
-
91
- //
92
-
93
-
94
-
95
- import UIKit
96
-
97
- import MapKit
98
-
99
-
100
-
101
- class MemoViewController: UIViewController ,UIImagePickerControllerDelegate,UINavigationControllerDelegate {
102
-
103
- @IBOutlet weak var saveButton: UIBarButtonItem!
104
-
105
-
106
-
107
- var memo: String?//saveボタン用
108
-
109
-
110
-
111
- // @IBOutlet weak var map: MKMapView!
313
+ //〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜保存から呼び出し
112
-
113
- @IBOutlet weak var memoTextField: UITextField!
314
+
114
-
115
- @IBOutlet weak var imageView: UIImageView!
315
+
116
-
117
- @IBAction func launchCamera(_ sender: UIButton) {
118
-
119
- let camera = UIImagePickerController.SourceType.camera //入力方法を指定し代入
120
-
121
- if UIImagePickerController.isSourceTypeAvailable(camera){ //カメラ機能があるか確認
122
-
123
- let picker = UIImagePickerController() //モーダルビューコントローラーの作成
124
-
125
- picker.sourceType = camera //入力方法cameraをモーダルビューコントローラーに指定
126
-
127
- picker.delegate = self
128
-
129
- self.present(picker,animated: true)//前に出す
130
-
131
- }
132
-
133
- }
134
-
135
- @IBOutlet weak var map: MKMapView!
136
-
137
-
138
-
139
-
140
-
141
-
142
-
143
-
144
-
145
-
146
-
147
-
148
-
149
-
150
-
151
- //写真を撮影した後の処理
152
-
153
- func imagePickerController(_ picker: UIImagePickerController,
154
-
155
- didFinishPickingMediaWithInfo info : [UIImagePickerController.InfoKey : Any]){//写真を辞書infoに格納する
156
-
157
- let image = info[UIImagePickerController.InfoKey.originalImage] as! UIImage // キーを使って辞書infoからオリジナル画像を取り出す
158
-
159
- self.imageView.image = image
160
-
161
- // let coordinate = info[UIImagePickerController.InfoKey.mediaMetadata] as! String //メタデータ
162
-
163
- // print(coordinate)
164
-
165
-
166
-
167
- UIImageWriteToSavedPhotosAlbum(image,nil,nil,nil)//アルバムに保存
168
-
169
- self.dismiss(animated: true)//モーダルビューを非表示に
170
-
171
- }
172
-
173
-
174
316
 
175
317
 
176
318
 
@@ -204,29 +346,19 @@
204
346
 
205
347
  // Do any additional setup after loading the view, typically from a nib.
206
348
 
349
+
350
+
351
+
352
+
353
+ loadImage()
354
+
207
355
 
208
356
 
209
- //〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
210
-
211
- // ③UserDefaultsの情報を参照してpath指定に使う
212
-
213
- let urlPath = String(describing: UserDefaults.standard.url(forKey: "userImage")!)
214
-
215
- print("保存先のpahtは(urlPath)")
216
-
217
-
218
-
219
- self.imageView.image = UIImage(contentsOfFile: urlPath) ←ここで呼び出し表示したい!
220
-
221
-
222
-
223
- //〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
224
-
225
- }
357
+ }
226
-
227
-
228
-
229
-
358
+
359
+
360
+
361
+
230
362
 
231
363
 
232
364
 
@@ -256,7 +388,7 @@
256
388
 
257
389
  }
258
390
 
259
- //cancel の場合は特に渡すデータもないので、単にこのモーダル(画面)を消してあげれば OK です。
391
+ //cancel の場合は特に渡すデータもないので、単にこのモーダル(画面)を消してあげれば OK です
260
392
 
261
393
  //どうするかというと dismiss という命令が使えるので self.dismiss( … のように書いてあげましょう
262
394
 
@@ -266,7 +398,7 @@
266
398
 
267
399
 
268
400
 
269
-
401
+
270
402
 
271
403
  if self.presentingViewController is
272
404
 
@@ -316,94 +448,14 @@
316
448
 
317
449
 
318
450
 
319
-
320
-
321
- //保存〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
322
-
323
- // ①パスの生成
324
-
325
- //UserDefaults のインスタンス生成
326
-
327
- let userDefaults = UserDefaults.standard
328
-
329
- // ドキュメントディレクトリの「ファイルURL」(URL型)定義
330
-
331
- var documentDirectoryFileURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
332
-
333
- // ドキュメントディレクトリの「パス」(String型)定義
334
-
335
- let filePath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]
336
-
337
-
338
-
339
- //②保存するためのパスを作成する
340
-
341
- func createLocalDataFile() {
342
-
343
- // 作成するテキストファイルの名前
344
-
345
- let fileName = "photo(cells).jpg"
346
-
347
- // DocumentディレクトリのfileURLを取得
348
-
349
- if documentDirectoryFileURL != nil {
350
-
351
- // ディレクトリのパスにファイル名をつなげてファイルのフルパスを作る
352
-
353
- let path = documentDirectoryFileURL.appendingPathComponent(fileName)
354
-
355
- documentDirectoryFileURL = path
356
-
357
- }
358
-
359
- }
360
-
361
- //画像を保存する関数の部分
362
-
363
- func saveImage() {
364
-
365
- createLocalDataFile()
366
-
367
- //pngで保存する場合
368
-
369
- let jpeImageData = imageView.image!.jpegData(compressionQuality: 0.5 )
370
-
371
- do {
372
-
373
- try jpeImageData!.write(to: documentDirectoryFileURL)
374
-
375
- //②「Documents下のパス情報をUserDefaultsに保存する」
376
-
377
- userDefaults.set(documentDirectoryFileURL, forKey: "userImage")
378
-
379
- } catch {
380
-
381
- //エラー処理
382
-
383
- print("エラー")
384
-
385
- }
386
-
387
- }
388
-
389
451
  saveImage()
390
452
 
391
-
392
-
393
-
394
-
395
- //〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜保存
396
-
397
-
398
-
399
- }
453
+ }
400
-
401
-
454
+
455
+
402
456
 
403
457
  }
404
458
 
405
459
 
406
460
 
407
461
  ```
408
-
409
- ここにより詳細な情報を記載してください。

2

2019/06/09 13:59

投稿

AppDvl
AppDvl

スコア58

test CHANGED
File without changes
test CHANGED
@@ -1,12 +1,10 @@
1
1
  ###
2
2
 
3
- userDefaultsでファイルパスを保存しました。が呼び出せません。
3
+ userDefaultsでJPEGのファイルパスを保存しました。が呼び出せません。
4
-
5
-
6
-
7
- ファイルパスを使い③のところで
4
+
8
-
5
+
6
+
9
- imageView.image に UIImage を入れたいです。
7
+ ファイルパスを使い③のところで保存したJPEGをimageView.image に 入れたいです。
10
8
 
11
9
 
12
10
 
@@ -20,7 +18,11 @@
20
18
 
21
19
  呼び出し方がおかしいのでしょうか?
22
20
 
23
- 保存しJPEGをUIImageを表示する方法を教えてください。
21
+ 保存しJPEGをUIImageを表示する方法を教えてください。
22
+
23
+
24
+
25
+ 初歩的なことかもしれないけどお願いします。
24
26
 
25
27
 
26
28
 

1

2019/06/08 22:39

投稿

AppDvl
AppDvl

スコア58

test CHANGED
File without changes
test CHANGED
@@ -1,10 +1,14 @@
1
1
  ###
2
2
 
3
- self.imageView.imageにuserDefaultsでファイルパスを保存しました。
3
+ userDefaultsでファイルパスを保存しました。が呼び出せません。
4
+
5
+
4
6
 
5
7
  ファイルパスを使い③のところで
6
8
 
7
- imageView.image に UIImage を入れたい。
9
+ imageView.image に UIImage を入れたいです
10
+
11
+
8
12
 
9
13
  直前のprintアウトでpathを出力すると”保存先のpahtはfile:///var/mobile/Containers/Data/Application/560C6943-B276-422D-BCFE-9B5C68E85AC6/Documents/photo2.jpg”が表示されるのでパスは保存できています。
10
14
 
@@ -16,7 +20,7 @@
16
20
 
17
21
  呼び出し方がおかしいのでしょうか?
18
22
 
19
- imageView.imageに保存しUIImageを表示する方法を教えてください。
23
+ 保存しJPEGをUIImageを表示する方法を教えてください。
20
24
 
21
25
 
22
26