Comment initialiser un NSFetchedResultsController dans iOS 10 Swift 3
Je ne peux pas obtenir mon NSFetchedResultsController
initialisé dans iOS 10 utilisation de Swift 3 dans CoreDataTableViewController de AECoreDataUI.
let request = NSFetchRequest<NasaPicture>(entityName:"NasaPicture")
request.predicate = Predicate(format: "isPagedResult == YES")
request.sortDescriptors = [SortDescriptor(key: "date", ascending: false)]
fetchedResultsController = NSFetchedResultsController(fetchRequest: request, managedObjectContext: moc, sectionNameKeyPath: nil, cacheName: nil)
Compilateur se plaint que
"Cannot convert value of type NSFetchedResultsController<NasaPicture> to expected type NSFetchedResultsController<_>"
Le contrôleur est maintenant à l'aide de type générique pour swift, mais il n'est pas inférer le type d'entité correctement. J'ai essayé explicitement:
fetchedResultsController = NSFetchedResultsController<NasaPicture>(fetchRequest: request, managedObjectContext: moc, sectionNameKeyPath: nil, cacheName: nil)
Pas de chance non plus.
Merci!
source d'informationauteur Jason C. Howlin
Vous devez vous connecter pour publier un commentaire.
NSFetchRequest
est maintenant un générique.NSFetchedResultsController
est un générique de trop. Par conséquent, lors de la déclaration des variables, vous devez utiliser un générique de déclaration, par exemple:quand nous avons besoin de déclarer la variable, alors nous devons utiliser un générique déclaration
veuillez vérifier le code ci-dessous pour NSFetchedResultsController dans swift 3..
}
//MARQUE: - NSFetchedResultsController
Il suffit d'appeler la fonction: