Если в realmSwift есть подобъекты объекта, как я могу изменить подобъекты, связанные с объектами? - PullRequest
0 голосов
/ 16 февраля 2019

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

У меня есть несколько объектов области в такой иерархии:

WeekNumberItem (вид списка областей)) -> отображается в tableView // currentWeek

  • WeeklyItem (король списка областей) -> отображается в tableView // задачах, которые необходимо выполнить в currentWeek

    • Имя (строка) -> отображается в textView

    • Категория (строка) -> отображается в textView

    • Detail (строка) -> отображается в textView

Я хотел отобразить свои WeeklyItems в своем табличном представлении, организованном по названию категории (в алфавитном порядке).Итак, я использовал этот код для его достижения.

weeklyItems = selectedWeekNumber? .WeeklyItems.sorted (byKeyPath: "category", ascending: true)

Затем я попытался изменить категорию с помощьюследующий код с использованием функций индекса WeeklyItem.Поскольку индекс сохраняет изменения, поскольку еженедельные элементы сортируются по «категории», он не будет отображаться там, где должен отображаться.

Есть ли другой способ, кроме ссылки на индекс WeeklyItem (индекс сохраняет изменения: изменитькатегория -> меняет порядок элемента weeklyItem -> индекс изменен -> категория отображается в другом объекте)?

Пожалуйста, помогите мне ... Я работаю в течение трех дней ...

func textViewDidEndEditing(_ textView: UITextView) {

        DispatchQueue(label: "background").async {
            autoreleasepool {
                let realm = try! Realm()
                if textView == self.ItemTitle {
                    let weekItem = realm.objects(WeekNumberItem.self)[self.selectedWeeklyIndexOfWeekNumber].weeklyItems[self.selectedWeeklyIndexOfWeeklyItem]
                    try! realm.write {
                        if self.ItemTitle.textColor != UIColor.lightGray {
                            weekItem.name = self.ItemTitle.text
                        }
                    }
                } else if textView == self.ItemCategory {
                    let weekItem = realm.objects(WeekNumberItem.self)[self.selectedWeeklyIndexOfWeekNumber].weeklyItems[self.selectedWeeklyIndexOfWeeklyItem]
                    try! realm.write {
                        if self.ItemCategory.textColor != UIColor.lightGray {
                            weekItem.category = self.ItemCategory.text
                        }
                    }
                } else if textView == self.ItemDetail {
                    let weekItem = realm.objects(WeekNumberItem.self)[self.selectedWeeklyIndexOfWeekNumber].weeklyItems[self.selectedWeeklyIndexOfWeeklyItem]
                    try! realm.write {
                        if self.ItemDetail.textColor != UIColor.lightGray {
                            weekItem.detail = self.ItemDetail.text
                        }
                    }
                }
            }
        }

Я ожидаю, что категория изменится в пределах своего WeeklyItem, но категория продолжает меняться в другом Weeklyitem.

изображение проблемы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...