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

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

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

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

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

Q&A

解決済

1回答

908閲覧

Realmに保存する要素の書き方について

8ki29_tabetai

総合スコア23

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

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

0グッド

0クリップ

投稿2018/12/28 17:42

前提

SwiftでDiaryを作っている初心者です。
Qiitaを用いて勉強しています。

発生している問題・エラーメッセージ

Variable used within its own initial value

該当のソースコード

swift

1 let realm = try! Realm() 2 print(Realm.Configuration.defaultConfiguration.fileURL!) 3 4 let diary = diary() //ここ! 5 diary.date = date 6 diary.context = contextTextView.text 7 8 try! realm.write { 9 realm.add(diary, update: true) 10 } 11 12 self.dismiss(animated: true, completion: nil)

補足情報

もともとdiary()をDiary()として書いていたのですがそれだと
◉Use of unresolved identifier 'Diary'; did you mean 'diary'?
という文が出てdiary()にしようとしてきます。

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

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

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

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

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

guest

回答1

0

ベストアンサー

コードが足りなく、判断できません。
もちろん、Diaryと言うRealm objectは作っているんですよね?
Diaryはどんなpropertyを持っているんですか?

全部ごっちゃに書かずに、
きちんとswiftファイルごとの内容を記入いただけると修正ポイントを指摘しやすいです。

作ってないのでしたら、
Diary.swiftファイルを作成し、

import Foundation import RealmSwift class Diary: Object { @objc dynamic var date : Date = Date() @objc dynamic var context : String = "" }

を作る必要があります。
ちなみに、ViewControllerの方も書いておくと

import UIKit import RealmSwift class ViewController: UIViewController { let realm = try! Realm() var diary = Diary() override func viewDidLoad() { super.viewDidLoad() } // 何らかのボタンを押した際に作動するようにしていると思います。 @IBAction func buttonPressed(_ sender: UIButton) { try! realm.write { // クラスのデータを変更するのはwrite内で行う必要があります。 self.diary.date = date self.diary.context = contextTextView.text // <-textFieldじゃなくていいんですか? realm.add(diary, update: true) } } }

なお、ちゃんと保存されたかは、printなど用いて確認ください。
realmの公式サイトとか、サンプルアプリ作ってるサイトなど良く見てみて下さい。

投稿2018/12/30 03:46

編集2018/12/30 03:59
hameji001

総合スコア639

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

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

8ki29_tabetai

2018/12/30 04:59

ここまでご丁寧にご回答いただきありがとうございます。 RealmObjectFileがちゃんとインストールできていなかったようです。 恐縮なのですが、もう一度アプリを作り直したところRealmObjectのファイルどころかRealmPluginをインストールするためのPackage Managerまで使えなくなってしまい、もう1つ質問を投稿しています。 もしよろしければそちらもご教授していただけますか?
hameji001

2018/12/30 14:44 編集

すみません、Alcatrazを使ったことないので、何とも言えません。 自分はcocoapodsを利用して、realmswiftを導入しております。 Alcatrazでしかできないことがあるのなら、別ですが、 cocoapodsいいですよ?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問