我目前正在制作一个基本的TodoList应用,在处理对象方面存在一些问题。
我在这种层次结构中有一些领域对象:
WeekNumberItem(领域列表的种类)->显示在tableView // currentWeek
WeeklyItem(领域列表的国王)->在tableView中显示//必须在currentWeek中完成的任务
名称(字符串)->显示在textView中
类别(字符串)->显示在textView中
详细信息(字符串)->显示在textView中
我想在其tableView中按类别名称(按字母顺序)显示我的WeeklyItems。因此,我使用此代码来实现它。
weeklyItems = selectedWeekNumber?.weeklyItems.sorted(byKeyPath:“ category”,升序:true)
然后,我尝试使用WeeklyItem的索引功能通过以下代码修改类别。由于索引保持更改,因为weeklyItems按“类别”排序,因此它不会出现在应显示的位置。
除了引用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中会不断更改。