设置NSPredicate在UITableView中仅返回1个对象

时间:2016-07-16 21:15:04

标签: ios swift core-data nsfetchrequest

我是核心数据的新手,目前正处于我的项目的开始阶段,该项目采用了YouTube API。我想根据用户选择的类别显示视频列表。 API请求工作正常(我将其设置为每次调用每次返回20个视频)。当我删除行" fr.predicate = NSPredicate(格式:" category ==%@",self.category)"从我的fetchedResultsController构造函数,UITableView将显示我点击的上一个类别的视频,以及当前类别中的视频,因此部分中的行增加20(20,40,60 ......)。问题是,当我添加NSPredicate线时,其他一切似乎都能正常工作,除非UITableView只显示1个视频,即使API调用每次仍然返回20个视频。

这里是我如何设置fetchedResultsController

    lazy var fetchedResultsController: NSFetchedResultsController = {
         let fr = NSFetchRequest(entityName: "Video")
         fr.sortDescriptors = [NSSortDescriptor(key: "id", ascending: true)]
         fr.predicate = NSPredicate(format: "category == %@", self.category)
         let fetchedResultsController = NSFetchedResultsController(fetchRequest: fr, managedObjectContext: self.context, sectionNameKeyPath: nil, cacheName: nil)
          fetchedResultsController.delegate = self
          return fetchedResultsController
    }()

这里是UITableViewController的代码:https://github.com/leqilong/TubeCat/blob/master/TubeCat/VideosTableViewController.swift

0 个答案:

没有答案