Je suis relativement nouveau dans le développement iOS et je rencontre des problèmes avec une requête de récupération des données Core. J'utilise Xcode 9-beta et swift 4.Problème avec la requête de récupération des données de base
Chaque fois que je mets à jour ma base de données, je charge les nouvelles données avec une requête d'extraction, pour faire quelques calculs et remplir une vue de table. Mon défi est que chaque fois que je fais une requête de recherche pour une entité, j'obtiens les mêmes données, même si elles ont changé. Il me semble que c'est la réutilisation des données d'une demande de récupération précédente, parce que si je ferme l'application et l'ouvre à nouveau, elle me montre les nouvelles données stockées.
Voici mon code:
if let context = container?.viewContext {
context.perform {
let request: NSFetchRequest<EntityName> = EntityName.fetchRequest()
let data = try? context.fetch(request)
self.data = data!
self.setUI()
}
}
Je reçois le récipient de:
let container: NSPersistentContainer? = (UIApplication.shared.delegate as? AppDelegate)?.persistentContainer
J'ai donné quelques noms génériques, comme je pense que c'est hors de propos pour la question.
Des pensées?
Merci, JL
Avez-vous des erreurs ou une sortie dans la console? – Scriptable
Les requêtes d'extraction ne sont jamais réutilisées. Vous avez peut-être oublié de sauvegarder le contexte après avoir modifié les données. Btw: le conteneur persistant et le contexte d'objet géré sont supposés être non-optionnels et 'AppDelegate' est obligatoire sinon l'application ne sera pas lancée. Il n'est pas mal de forcer le déballage des objets: 'let container = (UIApplication.shared.delegate as! AppDelegate) .persistentContainer' – vadian
Je ne reçois aucune erreur dans la console. Et je sauvegarde le contexte chaque fois que je change les données. –