41 votes

Nouvelles erreurs étranges d'iOS 7 : récepteur de la BD / ForceShrinkPersistentStore_NoLock

Bonne journée.

J'ai un projet qui utilise beaucoup de connexions réseau avec SSL. Ce projet fonctionne bien et sans erreur sous iOS 5 et 6. Mais avec le nouvel iOS 7, je continue à obtenir ces deux erreurs :

ERROR: unable to get the receiver data from the DB

ForceShrinkPersistentStore_NoLock -delete- We do not have a BLOB or TEXT column type.  Instead, we have 5.

Ils n'ont aucun lien entre eux et j'ai continué à recevoir le premier pendant quelques semaines, puis plus tard j'ai reçu le second aussi.

Elles sont reçues au démarrage de mon application, à ce moment-là j'envoie quelques HTTP POST et traite les données reçues. Je n'arrive pas à comprendre d'où viennent ces erreurs.

Je pourrais les trouver si je pouvais les comprendre. Quelqu'un sait-il ce qu'ils signifient ou dans quels cas on peut les provoquer ?

32voto

gigamorph Points 396

J'ai également eu le premier de vos problèmes aujourd'hui même :

ERROR: unable to get the receiver data from the DB

Je ne connais pas la raison (peut-être que le cache a été corrompu) mais mais en supprimant tout le dossier Applications du simulateur, le problème a disparu pour moi.

rm -rf ~/Library/Application Support/iPhone Simulator/7.0-64/Applications/*

3voto

Perisheroy Points 86

J'ai le même problème, mais c'est en déboguant sur un appareil iOS (iPhone 4 iOS 7.0.4).

Je ne suis pas sûr de la cause de ce problème... Mais j'ai essayé de supprimer l'application sur l'appareil et de la relancer, et l'erreur a disparu.

3voto

Jayprakash Dubey Points 1194

Cette erreur se produit généralement dans iOS7 et la raison peut être problèmes de cache . J'ai réglé le problème en suppression du dossier du simulateur .

Étapes :

Cliquez à droite sur "Finder" fenêtre de sélection "Aller au dossier"

Pâte "~/Bibliothèque/Application Support/iPhone Simulator/"

Cela ouvrira le dossier iPhone Simulator contenant les simulateurs utilisés dans l'exécution.

Maintenant, supprimer le dossier 7.x.

enter image description here

3voto

Delorean Points 11

J'ai eu le même problème aujourd'hui. Dans mon cas ERROR: unable to get the receiver data from the DB Le message d'erreur n'a pas été résolu en nettoyant l'application du simulateur/appareil. Après avoir lancé l'application pendant un certain temps, l'erreur a été signalée à nouveau. Elle a également été enregistrée à chaque fois que j'ai fait [NSURLSession dataTaskWithRequest:...] appels.

J'ai trouvé que c'était lié à la mise en cache des réponses. En définissant la politique pour ignorer le cache local, on a éliminé la journalisation des erreurs :

NSURLSessionConfiguration *defaultConfigObject = [NSURLSessionConfiguration  defaultSessionConfiguration];
defaultConfigObject.requestCachePolicy = NSURLRequestReloadIgnoringLocalCacheData;

NSURLSession *session = [NSURLSession sessionWithConfiguration: defaultConfigObject
                                                          delegate: nil
                                                     delegateQueue: [NSOperationQueue mainQueue]];

NSURLSessionDataTask * dataTask = [session dataTaskWithRequest:urlRequest completionHandler:completion];
[dataTask resume];

Note : La session doit être invalidée une fois qu'elle n'est plus nécessaire, sinon cela provoquera une fuite de mémoire.

1voto

iCodeAtApple Points 144

J'ai aussi été confronté à un problème similaire..

En tenant compte de la suggestion ci-dessus, j'ai également ignoré le cache dans ma demande de message.

NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:60.0];

et le problème n'est jamais apparu pour moi...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X