如何获得刚刚创建的Realm条目的价值?

时间:2016-03-22 03:47:20

标签: swift realm

我使用此代码创建领域条目,并且工作正常。

        let new = Exercises()
        new.name = new_name
        new.notes = new_notes

        try! RealmDB.write({ () -> Void in
            self.selectedDate.exercises.append(new)
        })

只要在领域数据库中创建了条目,我就需要使用该条目的值更新几个uitextfields。

NameField.text = String(XXXXX.name)
NotesField.text = String(XXXXX.notes)

我无法为该XXXXX找到合适的代码。如果你有什么想法,请告诉我。

简化领域结构如下所示。

    Dates {
        date {
            type = date;
            objectClassName = (null);
            indexed = NO;
            isPrimary = NO;
            optional = NO;
        }
        exercises {
            type = array;
            objectClassName = Exercises;
            indexed = NO;
            isPrimary = NO;
            optional = NO;
        }
    }
    Exercises {
        date {
            type = date;
            objectClassName = (null);
            indexed = NO;
            isPrimary = NO;
            optional = NO;
        }
        name {
            type = string;
            objectClassName = (null);
            indexed = NO;
            isPrimary = NO;
            optional = NO;
        }
        notes {
            type = string;
            objectClassName = (null);
            indexed = NO;
            isPrimary = NO;
            optional = NO;
        }
    }

1 个答案:

答案 0 :(得分:2)

如果您的self.selectedDate对象与UITextField对象的范围相同,则应该只是:

let latestNote? = self.selectedDate.exercises.last
NameField.text = latestNote.name
NotesField.text = latestNote.notes

如果不是这样,那么最简单的做法是使用Realm执行查询以重新获取刚刚保存的数据。

如果您无法正确区分数据库中的Dates条目,则可能需要添加主键字段。

class Dates : Object {
   dynamic var uuid = NSUUID.UUIDString

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

这样,您可以挂起要显示的对象的主键值,只需像这样查询Realm:

let realm = try! Realm()
let dates? = realm.objectForPrimaryKey(Dates.self, key: "<UUID>")

如果您需要任何澄清/跟进,请与我们联系!