我正在尝试构建待办事项列表应用程序。
到目前为止,我有一个用于存储类别的实体。在类别实体内,它具有3个关系。一个到任务实体,一个到事件实体,一个到提醒实体。
在我的应用中,我希望能够进入一个类别,并看到一个tableView
,里面充满了任务,提醒和事件。
到目前为止,我的tableView
只能使用一个子实体。这是通过以下代码完成的:
func loadEvents(with request: NSFetchRequest<Event> = Event.fetchRequest()) {
let predicate = NSPredicate(format: "parentCategory.name MATCHES %@", selectedCategory!.name!)
request.predicate = predicate
do {
itemsArray = try context.fetch(request)
} catch {
print(error)
}
print(itemsArray)
tableView.reloadData()
}
当我尝试将所有3个子类型添加到同一数组时,会发生问题。表格视图中未显示任何内容。 (我在表格视图中也支持多种单元格类型。)
我尝试了以下代码:
func loadItems(with request: NSFetchRequest<Task> = Task.fetchRequest()) {
itemsArray = []
let taskRequest: NSFetchRequest<Task> = Task.fetchRequest()
let predicate = NSPredicate(format: "parentCategory.name MATCHES %@", selectedCategory!.name!)
taskRequest.predicate = predicate
let eventRequest: NSFetchRequest<Event> = Event.fetchRequest()
eventRequest.predicate = predicate
do {
itemsArray.append(try context.fetch(taskRequest))
itemsArray.append(try context.fetch(eventRequest))
} catch {
print(error)
}
print(itemsArray)
tableView.reloadData()
}
但是我的表格视图只是显示为空。我的数组也是Any
的数组。
任何有关如何将不同子实体添加到同一数组的帮助将不胜感激。 :)