Я пытаюсь создать приложение со списком дел, которое добавляет категории и элементы внутри каждой категории. Категории сохраняются в базе данных области, но она вообще не загружается. Я пересмотрел свой код как a, но по-прежнему ничего не появляется. Ячейку tableview можно щелкнуть, но ее имена не отображаются на экране. Однако он все еще сохраняется в файле области. Если кто-то знает решение, пожалуйста, помогите мне и вот код. приветствуется любая помощь
import UIKit
import RealmSwift
class CategoryViewController: UITableViewController {
let realm = try! Realm()
var categories: Results<Category>!
override func viewDidLoad() {
super.viewDidLoad()
loadCategories()
}
@IBAction func addButtonPressed(_ sender: UIBarButtonItem) {
var textfield = UITextField()
let alert = UIAlertController(title: "Add new Category", message: "", preferredStyle: .alert)
let action = UIAlertAction(title: "Add", style: .default) {
(action) in
let newCategory = Category()
newCategory.name = textfield.text!
self.save(category: newCategory)
}
alert.addAction(action)
alert.addTextField {
(field) in
textfield = field
textfield.placeholder = "Add new Category"
}
present(alert, animated: true, completion: nil)
}
//MARK: - TableView Delegate Methods
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
performSegue(withIdentifier: "goToItems", sender: self)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let destinationVC = segue.destination as! ToDoListViewController
if let indexPath = tableView.indexPathForSelectedRow {
destinationVC.selectedCategory = categories[indexPath.row]
}
}
//MARK: - TableView DataSource Methods
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return categories.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "CategoryCell", for: indexPath)
let category = categories[indexPath.row]
cell.textLabel?.text = category.name
return cell
}
//MARK: - Data Manipulation Methods
func save(category: Category) {
do {
try realm.write {
realm.add(category)
}
}
catch {
print("Error saving category, \(error)")
}
self.tableView.reloadData()
}
func loadCategories() {
categories = realm.objects(Category.self)
tableView.reloadData()
}
}
А это классы категорий и предметов: ...
import Foundation
import RealmSwift
class Category: Object {
dynamic var name: String = ""
let items = List<Item>()
}
import Foundation
import RealmSwift
class Item: Object {
dynamic var title: String = ""
dynamic var done: Bool = false
var parentCategory = LinkingObjects(fromType: Category.self, property: "items")
}
На изображении ниже представлена ситуация с приложением.