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

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

ただいまの
回答率

88.09%

realmモデルで、.textを取得したい

受付中

回答 0

投稿

  • 評価
  • クリップ 0
  • VIEW 478
退会済みユーザー

退会済みユーザー

realmモデルで、textfield.textを取得する

現在realmを使ったアプリを作っています。realmモデルは下記にある、MyModelです。
このモデル内で、textfieldに入っている文字を取得し、imageTitleに入れたいのですが可能ですか?
textfieldは、viewcontrollerで宣言し、Main.storyboardで関連付けをしています。。

realmモデル

import Foundation
import RealmSwift

final class MyModel: Object {

    static let realm = try! Realm()

    @objc dynamic var id:Int = 0
    @objc dynamic var imageTitle: String = ""
    @objc dynamic var subImageTitle: String = ""
    @objc dynamic private var _widgetImage: UIImage? = nil
    @objc dynamic var widgetImage: UIImage? {
        set {
            self._widgetImage = newValue
            if let value = newValue{
                self.imageData = value.jpegData(compressionQuality: 1)
            }
        }
        get {
            if let image = self._widgetImage{
                return image
            }
            if let data = self.imageData{
                self._widgetImage = UIImage(data: data)
                return self._widgetImage
            }
            return nil
        }
    }
    @objc  dynamic private var imageData: Data? = nil


    override static func primaryKey() -> String? {
        return "id"
    }

    override static func ignoredProperties() -> [String]{
        return ["widgetimage", "_widgetImage"]
    }

    static func lastId() -> Int{
        if let widgetData = realm.objects(MyModel.self).sorted(byKeyPath: "id", ascending: true).last{
            return widgetData.id + 1
        }else{
            return 0
        }
    }

    static func creat() -> MyModel{
        let widgetData = MyModel()
        widgetData.id = lastId()
        return widgetData
    }

    func delete(number: Int){

        let result = MyModel.realm.objects(MyModel.self).filter("id = \(number)")

        try! MyModel.realm.write {
            MyModel.realm.delete(result)
        }
    }

    func save(){
        try!MyModel.realm.write{
            MyModel.realm.add(self)
        }
    }

    static func loadAll() -> [MyModel]{

        let widgetDatas = realm.objects(MyModel.self).sorted(byKeyPath: "id", ascending: true)
        var array: [MyModel] = []
        for widgetData in widgetDatas{
            array.append(widgetData)
        }
        return array
    }
}

補足情報(FW/ツールのバージョンなど)

swift4
realm3.15

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正の依頼

  • hayabusabusash

    2019/06/26 12:52

    モデル内だけでは難しいかもしれません...
    モデル内にStringの引数を持った関数を作って、ViewControllerからそれを実行するのではダメでしょうか?

    キャンセル

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

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

  • ただいまの回答率 88.09%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る