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

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

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

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

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

Swift

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

Q&A

0回答

1130閲覧

swiftでrealmに画像URLを保存したい。

moromoro

総合スコア10

Realm

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

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

Swift

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

0グッド

0クリップ

投稿2021/11/29 02:55

日記アプリを作成中です。
swiftでUIimagviewに表示された画像をrealmに保存したいです。
他クラスで生成したurlという変数を、別のクラスでrealmに保存したいです。
・できていること
UIImageViewに画像を表示する。
imageをphAssetを利用してURLにすることもできている。
realmに日付や内容は保存することができている。

swift

1@IBAction func imageTapGesture(_ sender: Any) { 2 changeImage() 3 } 4 // 画像パス関連(テスト) 5 // DocumentディレクトリのfileURL取得 6 func getDocumentsURL() -> NSURL { 7 let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0] as NSURL 8 return documentsURL 9 } 10 11 // ディレクトリのパスにファイル名をつなげてファイルのフルパスを作る 12func fileInDocumentsDirectory(filename: String) -> String { 13 let fileURL = getDocumentsURL().appendingPathComponent(filename) 14 print(fileURL) 15 print("look") 16 return fileURL!.path 17 } 18 19func changeImage() { 20 21 let sourceType:UIImagePickerController.SourceType = UIImagePickerController.SourceType.photoLibrary 22 23 if UIImagePickerController.isSourceTypeAvailable(UIImagePickerController.SourceType.photoLibrary){ 24 25 let cameraPicker = UIImagePickerController() 26 cameraPicker.sourceType = sourceType 27 cameraPicker.delegate = self 28 29 self.present(cameraPicker, animated: true, completion: nil) 30 } 31 } 32 33 //アルバム画面で写真を選択した時 34 func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) { 35 if let image = info[UIImagePickerController.InfoKey.originalImage] as? UIImage { 36 defer { 37 picker.dismiss(animated: true, completion: nil) 38 } 39 40 guard let phAsset = info[.phAsset] as? PHAsset else { return } 41 42 let options = PHContentEditingInputRequestOptions() 43 phAsset.requestContentEditingInput(with: options) { (input, info) in 44 //fullSizeImageURL に選択した画像のURLが入っているのでアンラップします 45 guard let url = input?.fullSizeImageURL else { return } 46 self.userImage.image = image 47 self.dismiss(animated: true, completion: nil) 48 49 } 50 51 }

このurlをバックボタン押した時にrealmに保存するようにしたいです。

swift

1@IBAction func backButton(_ sender: UIButton) { 2 let PenData:Data! 3 let titlePenData:Data! 4 let realm = try! Realm() 5 let diary = Diary() 6 PenData = canvasView.drawing.dataRepresentation() 7 titlePenData = titleView.drawing.dataRepresentation() 8 9 diary.date = hiniti 10 diary.context = PenData 11 diary.dateString = hiniti 12 diary.titlecontext = titlePenData 13 //ここにurlを呼び出しでrealmに保存したい。 14 //diary.value = 1 15 //STEP.3 Realmに書き込み 16 try! realm.write { 17 realm.add(diary, update:.all)}

初めは、画像をbase64に変更して保存しようとしましたが、容量が多すぎてできませんでした。
画像パスを取得してRealmに保存したい
こちらのサイトを見ながら進めています。
違う点は、違うクラスで読み取り、保存したい点です。
どなたかご教授よろしくお願いします。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問