У меня есть список категорий и подкатегорий, которые я хотел бы предварительно заполнить для пользователя.
Согласно https://www.raywenderlich.com/9220-realm-tutorial-getting-started вы создаете функцию:
private func populateDefaultCategories() {
if categories.count == 0 { // 1
try! realm.write() { // 2
let defaultCategories =
["Birds", "Mammals", "Flora", "Reptiles", "Arachnids" ] // 3
for category in defaultCategories { // 4
let newCategory = Category()
newCategory.name = category
realm.add(newCategory)
}
}
categories = realm.objects(Category.self) // 5
}
}
А затем вызовите его в viewDidLoad.
Но, чтобы соответствовать модели MVC, мне не имеет смысла помещать это в контроллер представления.
Где мне его поставить?
Я попытался создать быстрый файл и создать класс:
import Foundation
import RealmSwift
class SetupCategories {
let realm = try! Realm()
lazy var categories: Results<Category> = { self.realm.objects(Category.self) }()
public func populateDefaultCategories() {
if categories.count == 0 { // 1
try! realm.write() { // 2
let defaultCategories =
["Birds", "Mammals", "Flora", "Reptiles", "Arachnids" ] // 3
for category in defaultCategories { // 4
let newCategory = Category()
newCategory.name = category
realm.add(newCategory)
}
}
categories = realm.objects(Category.self) // 5
}
}
А затем я попытался вызвать его в appDelegate didFinishLaunchingWithOptions.
Но это не сработало. Я получаю сообщение «Результат инициализатора« SetupCategories »не используется».
Что я делаю не так? Как мне go об этом?