Метод внутри FetchedResultController не вызывается при выполнении выборки - PullRequest
0 голосов
/ 17 апреля 2020

Мне интересно, как я могу сделать так, чтобы метод grabDataFromEntity(gamesObject: fetchedObjects) внутри контроллера fetchresult вызывался после выполнения выборки. Даже когда я помещаю метод снаружи и сразу после контроллера выборки. Связано ли это с параллелизмом основных данных или многопоточностью.

class ViewController: UIViewController, NSFetchedResultsControllerDelegate {
        var game : Game?
        var gamesMo: [GameModel]? = []
    lazy var context : NSManagedObjectContext = {
            let appDelegate = UIApplication.shared.delegate as! AppDelegate
            return appDelegate.persistentContainer.viewContext
        }()


        lazy var fetchRequestController : NSFetchedResultsController<GameModel> = {
            let fetchRequest = NSFetchRequest<GameModel>(entityName: "Game")
            fetchRequest.sortDescriptors = [NSSortDescriptor(key: "date", ascending: false)]

            // fetch result controller
            let frc = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: context, sectionNameKeyPath: nil, cacheName: nil)
            frc.delegate = self

            do {
               try frc.performFetch()
               if let fetchedObjects = frc.fetchedObjects {
                  self.gamesMo = fetchedObjects
                  grabDataFromEntity(fromContext: fetchedObjects)
               }
           } catch{
               fatalError("Failed to fetch entities: \(error)")
           }
           return frc
        }()





    func grabDataFromEntity(fromContext gamesObject: [GameModel]){

            guard let game = game else { return }
            for gameFromModel in gamesObject  {
                game.corners = Int(gameFromModel.corners)
                game.fouls = Int(gameFromModel.fouls)
                game.gameOutcome = gameFromModel.gameOutcome
                game.goal = Int(gameFromModel.goal)
           }
                gamesArray?.append(game)
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...