Извлеките отношения один-ко-многим в coreData и поместите их в табличное представление - PullRequest
0 голосов
/ 09 марта 2019

Как я могу получить отношения один-ко-многим в основных данных и поместить их в табличное представление?

У меня есть это как модель данных для пользователя

Модель данных CoreData пользователя

А это моя модель данных для Задачи

Задача Модель данных CoreData

Как мне получить задачи для конкретного пользователя и поместить их в табличное представление

Я попытался использовать user.tasks, однако это вернуло NSSet, и я не смог использовать его для создания набора данных для табличного представления.

Должен ли я использовать предикат вместо этого? Это то, что у меня есть

    func handleCoreDataTask(){
    let request: NSFetchRequest<Task> = Task.fetchRequest()
    let dateSorter = NSSortDescriptor(key: "dueDate", ascending: false)
    request.sortDescriptors = [dateSorter]
    //request.predicate = 
    taskResultController = NSFetchedResultsController(fetchRequest: request,
                                                   managedObjectContext: coreDataStack.manageContext,
                                                   sectionNameKeyPath: nil,
                                                   cacheName: nil)
    taskResultController.delegate = self
    do{
        try taskResultController.performFetch()
    }
    catch{
        print("Perform Fetch error: \(error)")
    }
}

1 Ответ

0 голосов
/ 09 марта 2019

Примените обратную зависимость к User в Task и добавьте соответствующий предикат

let username = "Foo"
let request: NSFetchRequest<Task> = Task.fetchRequest()
request.predicate = NSPredicate(format: "user.name == %@", username)
let dateSorter = NSSortDescriptor(key: "dueDate", ascending: false)
request.sortDescriptors = [dateSorter]

. Способ создания нового контроллера результатов не рекомендуется.Создайте контроллер результатов лениво (один раз) и динамически изменяйте предикаты и сортируйте дескрипторы.

...