以一对一关系插入数据-域

大桶

因此,我尝试设置并预先填充数据库,以供实际应用程序出厂时使用。

我遇到的问题是我无法插入正在创建该字段为空的关系的字段中。屏幕截图如下:

屏幕截图应类型为空 这些是我的数据模型

持有信息类型的数据模型是另一个对象的关键

class sourceRecentData: Object {

    // Name
    dynamic var sourceName: String = ""

    // Description
    dynamic var sourceDesc: String = ""

    // TypeID
    dynamic var type : sourceType?

    // Key
    dynamic var sourceKey: String = ""

    // Enabled
    dynamic var sourceEnabled: Bool = true

    // Unlocked
    dynamic var sourceUnlocked: Bool = false
}

该对象中的id链接到上面的对象

class sourceType: Object {

    // NewsType
    dynamic var typeOfNews: String = ""


}

我现在用来执行插入的方法只是虚拟数据

func createTopDB() {

    let recentData = sourceRecentData()


    let realm = try! Realm()

    recentData.sourceName = "dfdfd"
    recentData.sourceDesc = "fdfd"
    recentData.sourceKey = "fdfdf"
    recentData.sourceEnabled = true
    recentData.sourceUnlocked = false
    recentData.type?.typeOfNews = "fdfdfd"

    try! realm.write({ () -> Void in
        realm.add(recentData)

    })
}
马里乌斯

您需要先使用相关对象初始化属性,然后才能在其上写入值。我建议您在一个单独的变量中(如下所示),这样就可以避免在可选值(recentData.type?.typeOfNews = …上进行写操作

let type = SourceType()
type.typeOfNews = "fdfdfd"
recentData.type = type

您可以查询这样的对象:

let realm = try! Realm()
let objects = realm.objects(SourceRecentData).filter("type.id = 1")

PS:我建议您以一个大写字母开头来命名您的类,因为这是Swift编程社区中的最佳常规做法,并且可以更轻松地区分类和变量。我在下面的示例代码中应用了该代码,以使其更易于阅读,因为SO的语法突出显示也依赖于该约定。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章