如何创建在安装应用程序时添加的初始 Realm 对象

How to create initial Realm objects that get added upon installation of app

假设我正在创建一个对象,该对象接受两个字符串并充当字典。

class WordInDictionary: Object {
    @objc dynamic var word: String = ""
    @objc dynamic var meaning: String = ""

如果我想在应用 installation/update 时将一些初始对象添加到数据库中,我应该怎么做?

另外,有没有办法让那些初始对象不能被删除?

"What should I do if I wanted to have some initial objects that get added to the database just once upon installation/update of the app?"

一个选择是在领域初始化附近有一些代码来检查领域中是否已经有任何 WordInDictionary 对象——如果没有,则添加所需的默认对象。

例如

let realm = try! Realm()
if realm.objects(WordInDictionary.self).isEmpty
{
  // Add required words here
}

"Also, is there a way to make it so that just those initial objects can't be deleted?"

我不知道将领域对象设置为只读的方法。您必须以某种方式在代码中实现它,例如有一个 isDeletable 布尔成员,对于每个用户创建的对象是 true,对于您的默认成员是 false,然后只从领域中删除那些。

例如对于您的删除代码:

func deleteWords(wordsToDelete: Results<WordInDictionary>)
{
  try! realm.write 
  {
    realm.delete(wordsToDelete.filter("isDeletable = true")
  }
}