Как создать начальные объекты Realm, которые добавляются при установке приложения - PullRequest
0 голосов
/ 16 апреля 2019

Скажем, я создаю объект, который принимает две строки и действует как словарь.

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

Что мне делать, если я хотел, чтобы некоторые исходные объекты добавлялись в базу данных только один раз при установке / обновлении приложения?

Кроме того, есть ли способсделать так, чтобы только эти исходные объекты не могли быть удалены?

1 Ответ

0 голосов
/ 16 апреля 2019

«Что мне делать, если я хотел, чтобы некоторые начальные объекты добавлялись в базу данных только один раз при установке / обновлении приложения?»

Одним из вариантов будет иметь некоторый код рядом с инициализацией области, который проверяет, есть ли в области какие-либо 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")
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...