2013-10-02 8 views
40

Guten Tag.Seltsame neue iOS 7 Fehler: Empfänger von DB/ForceShrinkPersistentStore_NoLock

Ich habe ein Projekt, das viele Netzwerkverbindungen mit SSL verwendet. Dieses Projekt läuft gut und ohne Fehler auf iOS 5 und 6. Aber mit neuen iOS 7 Ich erhalte diese beiden Fehler:

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. 

Sie sind nicht in irgendeiner Weise verbunden und ich habe halten erste für einige Wochen bekommen, später bekam ich auch diesen zweiten.

Sie werden auf meinem Anwendungsstart empfangen, an diesem Punkt sende ich wenige HTTP POSTs und verarbeitet empfangene Daten. Ich kann nicht verstehen, wo diese Fehler herkommen.

Ich könnte sie finden, wenn ich sie verstehen könnte. Wer weiß, was sie bedeuten oder in welchen Fällen man sie verursachen kann?

+0

Ich sollte hinzufügen, dass diese Fehler erheben keine Ausnahme und Stören Sie die App-Funktionalität in keiner Weise. – avuthless

+0

Verwendet Ihre App CoreData? Sie haben einige Optionen geändert, die sie mit sqlite-Speicher in iOS 7 verwenden, die klingen, als könnten sie verwandt sein (Ich werde einen Link zu dem WWDC-Video finden, in dem erwähnt wird, wenn du bestätigst, dass du CD verwendest) – RyanR

+0

Nein, ich bin keine CD, aber ich möchte diesen Link, danke! – avuthless

Antwort

31

Ich hatte auch die ersten Ihre Probleme nur heute:

ERROR: unable to get the receiver data from the DB 

Ich weiß nicht, warum (vielleicht irgendwie die Cache bekam korrupt) aber alle der Simulators Programme-Ordner zu löschen, das Problem gehen weg für mich.

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

Nun, am Montagmorgen waren beide Fehler weg (niemand berührte den Code überhaupt). Diese "Geisterfehler" sind also immer noch ein Mysterium. iOS 7 wirft immer noch "BLOB TEXT" Fehler, aber nicht so oft. Gerät und Simulatoren iOS 5 + 6 bleiben ruhig. Ich akzeptiere diese Antwort, weil es kein Problem mehr gibt, obwohl es sich selbst gelöst hat. Danke für Ihre Unterstützung. – avuthless

+0

eine einfache sauber funktioniert auch in den meisten Fällen – whyoz

+5

Löschen aller Apps aus dem Simulator arbeitete auch für mich – Swati

3

bekam ich das gleiche Problem, aber wird beim Debuggen auf einem iOS-Gerät (iPhone 4 iOS 7.0.4)

nicht sicher, was das verursacht ... Aber ich habe versucht die App auf dem Gerät löschen und erneut ausgeführt, dann ist der Fehler verschwunden.

3

Dieser Fehler tritt im Allgemeinen in iOS7 auf und der Grund könnte sein Cache Probleme. Ich behob das Problem von Löschen Ordner des Simulators.

Schritte:

Rechtsklick auf „Finder“ Fenster wählen „Gehe zum Ordner“

Paste „~/Library/Application Support/iPhone Simulator /“

Dies öffnet den iPhone Simulator-Ordner, der Simulatoren enthält, die bei der Ausführung verwendet werden.

Jetzt 7.x-Ordner löschen.

enter image description here

0

Löschen von abgeleiteten Daten gelöst dies für mich.

Fenster> Organizer> Projekte

Ihr Projekt auswählen, drücken Sie neben abgeleiteten Daten löschen.

1

Ich hatte auch ein ähnliches Problem ..

der obigen Vorschlag Einschließlich ich den Cache ignoriert auch in meinem Beitrag Anfrage

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

und das Problem für mich nie erschienen ...

+0

Ich habe eine Reihe von JSON-Posts auf meinem Webservice. Das Problem tritt nur bei einem auf, das> 40 KB Daten zurückerhält. Durch das Ändern der cachePolicy in NSURLRequestReloadIgnoringCacheData wurde das Problem behoben. – JSWilson

1

Es war leichter für mich zu beheben:

Gerade die App aus dem Simulator gelöscht (so wie du es von deinem Handy machen würdest - ich brauche keine Ordner mehr zu löschen) behebt das Problem.

3

Bekam dasselbe Problem heute. In meinem Fall ERROR: unable to get the receiver data from the DB Fehlermeldung wurde nicht durch Reinigen App vom Simulator/Gerät gelöst. Nachdem die App für eine Weile ausgeführt wurde, wurde der Fehler erneut gemeldet. Auch es wurde jedes Mal protokolliert, wenn ich [NSURLSession dataTaskWithRequest:...] Anrufe gemacht habe.

Es wurde festgestellt, dass es sich um Caching-Antworten handelte. Einstellen Politik lokalen Cache eliminiert Fehlerprotokollierung zu ignorieren:

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]; 

Hinweis: Session für ungültig erklärt werden muss, wenn nicht mehr benötigt, da sonst verursachen Speicherleck