因此,我正在尝试设置并预先填充数据库,以便在实际应用程序发布时供以后使用.
我遇到的问题是我无法插入创建关系的字段,字段只是空的.截图如下:
保存信息类型的数据模型是另一个对象的关键
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
}
Run Code Online (Sandbox Code Playgroud)
此对象中的id链接到上面的对象
class sourceType: Object {
// NewsType
dynamic var typeOfNews: String = ""
}
Run Code Online (Sandbox Code Playgroud)
我现在用来执行插入的方法只是虚拟数据
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)
})
}
Run Code Online (Sandbox Code Playgroud)
您需要首先使用相关对象初始化属性,然后才能在其上写入值.我建议在一个单独的变量中,如下所示,这样你就可以避免写一个可选的值(recentData.type?.typeOfNews = …):
let type = SourceType()
type.typeOfNews = "fdfdfd"
recentData.type = type
Run Code Online (Sandbox Code Playgroud)
您可以像这样查询对象:
let realm = try! Realm()
let objects = realm.objects(SourceRecentData).filter("type.id = 1")
Run Code Online (Sandbox Code Playgroud)
PS:我建议以大写字母开头命名你的类,因为这是Swift编程社区中的一般最佳实践,可以更容易区分类和变量.我在下面的示例代码中应用了它,以便于阅读,因为SO的语法高亮也依赖于该约定.
| 归档时间: |
|
| 查看次数: |
1134 次 |
| 最近记录: |