Не удается получить область для сохранения моих данных IOS Swift - PullRequest
0 голосов
/ 20 февраля 2019

Я не уверен, что здесь происходит.Я пытаюсь сохранить тестовые данные в базу данных, и она не будет сохранена.Он сохраняет данные в моем классе Realm по умолчанию, которые я установил, но не сохраняет те, которые я пытаюсь сохранить, они отображаются пустыми.Это чертовски странно.

Вот мой код сохранения:

let medHub: MedInfo!
    medHub = MedInfo()




    if let txtMedName = txtMedName.text {
        medHub.medName = txtMedName
    }

    if let txtMedDose = txtMedDose.text {
        medHub.medDose = txtMedDose
    }

    if let txtDoctorsName = txtDoctorsName.text {
        medHub.doctorName = txtDoctorsName
    }

    if let txtRxDate = txtRxDate.text {
        medHub.rxDate = txtRxDate
    }

    if let imageViewDisplay = imageViewDisplay.image {
        if let nsDataImage = imageViewDisplay.jpegData(compressionQuality: 0.1) as NSData? {
            medHub.imageNSDATA = nsDataImage


        }
        // Save Data To Realm
        //MARK: Save Data

        let medHub = MedInfo()
        let realm = try? Realm()
        try? realm?.write {
            realm?.add(medHub)
        }
        print("Data Was Saved To Realm Database.")

}

Вот мой класс царства

class MedInfo: Object {


//  Info To Be Stored
@objc dynamic var keyID = UUID().uuidString
@objc dynamic var medName: String = ""
@objc dynamic var medDose: String = ""
@objc dynamic var currentDate: Date = Date()
@objc dynamic var timeTook: Date = Date()
@objc dynamic var lastTook: Date = Date()
@objc dynamic var durationOfTime: Date = Date()
@objc dynamic var doctorName: String = ""
@objc dynamic var rxDate: String = ""
@objc dynamic var medInfo: String = ""
@objc dynamic var linkPicture: String = ""
@objc dynamic var imageNSDATA: NSData?
@objc dynamic var isGood: Bool = false
@objc dynamic var extraDate: Date = Date()
@objc dynamic var extraString: String = ""
@objc dynamic var extraBool: Bool = false



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


}

Я называюфункция для сохранения данных после того, как я заполнил все свои текстовые поля.Затем я открываю свою реальную базу данных и наблюдаю, как данные сохраняются; в ней сохраняются все динамические переменные по умолчанию в моем классе Medinfo класса областей, но она не записывает какие-либо данные из моих текстовых полей.Я предоставил снимок экрана с базой данных.Также снимок экрана моего представления, где я набираю текстовые файлы для сохранения.

Screen-Shot Of Realm Database

Вот снимок экрана моего представления, которое я заполняю, это неничего не сохраняю в Textfields.Screen Shot Of My View

Любая помощь в том, что я делаю неправильно, будет крутой.Я новичок во всем этом, поэтому я только учусь здесь.Как вы можете видеть в Снимке экрана базы данных, я попытался сохранить данные как Три раза Без Удачи.

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

Вы создаете два экземпляра из MedInfo: первый экземпляр, который вы заполняете из своего textfelid, второй экземпляр, который вы создаете, прежде чем сохранить его в области, так как он принимает значения по умолчанию, поскольку у вас возникла эта проблема, сначала выдолжен заполнить ваш экземпляр так, как вы показываете его в своем коде, а затем отправить свой экземпляр в качестве периметра для сохранения метода без создания нового экземпляра:

    let medHub: MedInfo!
    medHub = MedInfo()

    if let txtMedName = txtMedName.text {
        medHub.medName = txtMedName
    }

    if let txtMedDose = txtMedDose.text {
        medHub.medDose = txtMedDose
    }

    if let txtDoctorsName = txtDoctorsName.text {
        medHub.doctorName = txtDoctorsName
    }

    if let txtRxDate = txtRxDate.text {
        medHub.rxDate = txtRxDate
    }

    if let imageViewDisplay = imageViewDisplay.image {
        if let nsDataImage = imageViewDisplay.jpegData(compressionQuality: 0.1) as NSData? {
            medHub.imageNSDATA = nsDataImage
           }
    }

saveRealmObject(medHub)

Вот метод сохранения, который вы можете использовать для сохранения вашего объекта

    // Save Data To Realm
    //MARK: Save Data
    func saveRealmObject(medHub:MedInfo) {
        let realm = try? Realm()
        try? realm?.write {
            realm?.add(medHub)
        }
        print("Data Was Saved To Realm Database.")
}
0 голосов
/ 20 февраля 2019

потому что вы сохраняете пустой объект

let medHub = MedInfo()
let realm = try? Realm()
try? realm?.write {
   realm?.add(medHub)
}

let medHub = MedInfo () создает новый объект с пустым значением / значением по умолчанию

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...