因此,我尝试设置并预先填充数据库,以供实际应用程序出厂时使用。
我遇到的问题是我无法插入正在创建该字段为空的关系的字段中。屏幕截图如下:
持有信息类型的数据模型是另一个对象的关键
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] 删除。
我来说两句