使用链接属性创建领域记录

时间:2015-10-14 00:10:01

标签: realm

我刚开始使用领域,我认为我已经创建了两个正确的对象。 ColourCategory可以有许多PaletteColour类型的对象

class PaletteColour: Object {
    dynamic var name = ""
    dynamic var category: ColorCategory?
}

class ColourCategory: Object {
    dynamic var name = ""
    let paletteColours = List<PaletteColour>()
}

我只是通过创建名称来创建许多类别。 现在,我想添加颜色,PaletteColour的一个属性是它必须有一个按类名链接到Category对象。

我被困在如何使用我的一个类别名称创建PaletteColour对象。

我从这个

开始
let realm = try! Realm()
newColour = PaletteColour()
newColour.name = "Red"
// This is where I am stuck
// How do I add a category property that has a name of "Test Category" and linked to the ColourCategory object
newColour.category = ????????????
realm.write {
  realm.add(newColour)
}

我相信这很简单,所以任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:1)

您只需创建ColourCategory实例并指定给category属性即可链接颜色和类别对象。

// Create category object named "Test Category"
let category = ColourCategory()
category.name = "Test Category"
// then, assign to `category` propety
newColour.category = category;

realm.write {
    realm.add(newColour)
}

您还可以对palleteColours属性使用“反向链接”机制。如果您使用“反向链接”,则无需管理paletteColours的反向关系。

class ColourCategory: Object {
    dynamic var name = ""
    var paletteColours: [PaletteColour] {
        return linkingObjects(PaletteColour.self, forProperty: "category")
    }
}