首页 > 解决方案 > 核心数据 - 将多个子实体添加到数组

问题描述

我正在尝试构建一个待办事项列表应用程序。

到目前为止,我有一个用于存储类别的实体。在类别实体中,它有 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.

任何有关如何将不同的子实体添加到同一数组的帮助将不胜感激。:)

标签: swiftcore-data

解决方案


推荐阅读