Changed NSFetchRequest Now everything happens like this

let request: NSFetchRequest<Level> = Level.fetchRequest 

But then the fun began.

 if #available(iOS 10.0, *) { let request: NSFetchRequest<Level> = Level.fetchRequest } else { let request = NSFetchRequest(entityName: "Level") as NSFetchRequest! } 

And everything is good, but after all request necessary outside of if/else

 try context.fetch(fetchRequest) 

The question is how to make the request given is/else ?

PS Initialization before if/esle does not work, because initialization for them is different. enter image description here

PSS to write try context.fetch(fetchRequest) separately for each axis is silly!

  • and just declare for if / else and init is already done inside will not work? - Max Mikheyenko
  • @ MaxMikheyenko does not work - Svyatoslav Boyko
  • and what exactly writes if to declare in advance? - Max Mikheyenko
  • @MaxMikheyenko var fetchRequest: NSFetchRequest <AnyObject>! Type 'AnyObject' does not conform to protocol 'NSFetchRequestResult' - Svyatoslav Boyko

1 answer 1

 var fetchRequest = NSFetchRequest<NSFetchRequestResult>() if #available(iOS 10.0, *) { fetchRequest = MapPoint.fetchRequest() } else { fetchRequest = NSFetchRequest(entityName: "MapPoint") } 

Here it already looks like an acceptable option, use!