NSFetchedResultsController fetchedObjects返回nil

问题描述 投票:0回答:1

我在下面的代码中使用的是从核心数据中提取Article的列表,它给了我预期的结果。

    let moc = CoreDataHelper().backgroundContext
    let employeesFetch = NSFetchRequest<NSFetchRequestResult>(entityName:"Article")
    do {
    let fetchedEmployees = try moc?.fetch(employeesFetch) as! [Article]
    print(fetchedEmployees.count)
    } catch {
    fatalError("Failed to fetch employees: \(error)")
    }

输出:376

但是当我尝试使用NSFetchedResultsController进行获取时。 fetchedObjects始终返回nil。我用下面的代码。

 fileprivate lazy var fetchedResultsController: NSFetchedResultsController<Article> = {
        // Create Fetch Request
        let moc = CoreDataHelper().backgroundContext
       // let fetchRequest: NSFetchRequest<Article> = Article.fetchRequest()
        let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName:"Article")
        // Configure Fetch Request
        fetchRequest.sortDescriptors = [NSSortDescriptor(key:"category", ascending: true)]
        // Create Fetched Results Controller
        let fetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext:moc!, sectionNameKeyPath: nil, cacheName: nil)
        // Configure Fetched Results Controller
        fetchedResultsController.delegate = self
        let quotes = fetchedResultsController.fetchedObjects
        return fetchedResultsController as! NSFetchedResultsController<Article>
    }() 

quotes始终为零。我无法找出问题所在?

ios core-data swift3 nsfetchedresultscontroller
1个回答
0
投票

尝试在闭包外部的fetchedResultsController上调用performFetch()。

希望有效。

© www.soinside.com 2019 - 2024. All rights reserved.