【问题标题】:TextField will not load from RealmSwiftTextField 不会从 RealmSwift 加载
【发布时间】:2018-11-13 00:31:01
【问题描述】:

这就是我一直在发疯的问题。我有一个使用 Realm 作为其数据库的应用程序。我过去曾将 Realm 与 tableviews 一起使用,它可以正常工作。我似乎无法获取保存的 textField 数据以加载到 viewDidLoad 上的视图中。 tableViews 有一个 reloadData 方法,但 textFields 不是这种情况。我需要将数据库中的数据加载到 viewDidLoad 上的视图中,并且我已经多次确认数据已保存并且正在数据库中等待加载到视图中,但它不会加载。

import Cocoa
import RealmSwift

class PublisherViewController: NSViewController {

    @IBOutlet weak var publisherName: NSTextField!    

    let realm = try! Realm()
    var pubData : Results<Pub>?

    override func viewDidLoad() {
        super.viewDidLoad()

        // Here is where textField.stringValues should load into the viewDidLoad
        let theData = Pub()
        theData.pubName = publisherName.stringValue
        print("print \(theData)")
    }

    func save(pubData: Pub) {
        do {
            try realm.write {
                realm.add(pubData)
            }
        } catch {
            print("there was an error saving pubData \(error)")
        }
    }

    @IBAction func savePublisher(_ sender: NSButton) {
        let publisherData = Pub()
        publisherData.pubName = publisherName.stringValue
        save(pubData: publisherData)
    }
}

这是我的数据模型

import Foundation
import RealmSwift

class Pub: Object {
    @objc dynamic var pubName : String = """
}

【问题讨论】:

  • 什么是publisherName?您在哪里将文本值设置为publisherTitle
  • 这是一个错字对不起,该项目已被编辑,仍然产生相同的结果。
  • theData = Pub() 是否返回任何结果?
  • 所以你试图在publisherName 文本字段上显示保存的Pub 对象pubName 属性,如果用户更改了值,请将更改后的值保存到领域?
  • 是的,大卫

标签: swift macos cocoa realm


【解决方案1】:

感谢 Discord 上的 Mrkrisher,这里是关于如何将 Realm 中最后保存的 textViews 和 textFields 显示到 viewDidLoad 中的答案

override func viewDidLoad() {
        super.viewDidLoad()
    publisherName.stringValue = (pubData?.last?.pubName)?? ""
    }

【讨论】:

    猜你喜欢
    • 2017-04-02
    • 2016-07-13
    • 1970-01-01
    • 2021-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-07
    • 2021-11-02
    相关资源
    最近更新 更多