无法从RealmSwift

时间:2018-11-13 00:31:02

标签: swift macos cocoa realm

这就是我一直在疯狂的问题。我有一个使用Realm作为其数据库的应用程序。我过去曾将Realm与tableview一起使用,并且可以正常工作。我似乎无法获取保存的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 = """
}

1 个答案:

答案 0 :(得分:0)

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

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