«Что мне делать, если я хотел, чтобы некоторые начальные объекты добавлялись в базу данных только один раз при установке / обновлении приложения?»
Одним из вариантов будет иметь некоторый код рядом с инициализацией области, который проверяет, есть ли в области какие-либо WordInDictionary
объекты - если нет, то добавьте требуемые объекты по умолчанию.
например.
let realm = try! Realm()
if realm.objects(WordInDictionary.self).isEmpty
{
// Add required words here
}
«Кроме того, есть ли способ сделать так, чтобы только эти начальные объекты не могли быть удалены?»
Я не знаю, как сделать объекты области доступными только для чтения. Вы должны были бы реализовать это в коде каким-то образом, например иметь логический элемент isDeletable
, равный true
для каждого созданного пользователем объекта и false
для элементов по умолчанию, а затем удалять только тех из области.
например. для вашего кода удаления:
func deleteWords(wordsToDelete: Results<WordInDictionary>)
{
try! realm.write
{
realm.delete(wordsToDelete.filter("isDeletable = true")
}
}