How to initialize a NSFetchedResultsController in iOS 10 Swift 3

前端 未结 3 1053
挽巷
挽巷 2020-12-18 20:19

I can\'t get my NSFetchedResultsController initialized in iOS 10 using Swift 3 within CoreDataTableViewController from AECoreDataUI.

let request         


        
3条回答
  •  天命终不由人
    2020-12-18 21:10

    when we need to declare variable, then we have to use a generic declaration please check below code for NSFetchedResultsController in swift 3..

     override func viewDidLoad() {
         super.viewDidLoad()
        do {
            try self.fetchedResultsController.performFetch()
        } catch {
            let fetchError = error as NSError
            print("Unable to Perform Fetch Request")
            print("\(fetchError), \(fetchError.localizedDescription)")
        }
    

    } // MARK: - NSFetchedResultsController

    fileprivate lazy var fetchedResultsController: NSFetchedResultsController = {
        let fetchRequest = NSFetchRequest(entityName: "UserExistenceOnXMPPCD")
        fetchRequest.sortDescriptors = [
            NSSortDescriptor(key: "name", ascending: true)]
    
        let fetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext:CoreDataController.sharedInstance.managedObjectContext, sectionNameKeyPath: nil, cacheName: nil)
    
        try! fetchedResultsController.performFetch()
        fetchedResultsController.delegate = self
        if let quotes = fetchedResultsController.fetchedObjects {
            if quotes.count > 0 {
                print(quotes.count)
            }
        }
        return fetchedResultsController
    }()
    
    
    // MARK: - NSFetchedResultsController delegate methods
    func controllerWillChangeContent(_ controller: NSFetchedResultsController)  {
        tableView.beginUpdates()
    }
    
    func controllerDidChangeContent(_ controller: NSFetchedResultsController)  {
        tableView.reloadData()
    }
    

提交回复
热议问题