Wie soll ich defensiv Code für mögliche Beschädigung oder Laden von Kerndatendateien codieren?

9

Ich verwende Core-Daten in meiner iPhone-Anwendung, was in Ordnung ist.

Ich mache mir Sorgen darüber, welchen Ansatz ich wählen sollte, wenn es jemals einen Fehler beim Laden der Kerndaten in meine Anwendung gibt (oder bei der Speicherung). Insbesondere eine mögliche Situation (nicht sicher, was die Chancen dafür sind, aber besser, als Nachsicht), wo Ihre Anwendung überhaupt nicht funktionieren kann, weil sie ihre Daten nicht laden kann, und ein Neustart der Anwendung bringt es zurück zum bitte gleich.

Frage - Was tun die Leute normalerweise, wenn sie versuchen, mit dieser Situation umzugehen? Welcher Ansatz mit anderen Worten? Die einzigen, die einem in den Sinn kommen, sind:

  1. Erstellen Sie einen Fehlerhandler, der den Benutzer fragt, ob er seine Daten löschen und sozusagen neu starten möchte. Ich nehme an, dass das iPhone das Problem als Fehler an das Programm meldet / p>

  2. Schlagen Sie dem Benutzer vor, dass er die Anwendung möglicherweise löschen und neu installieren muss (weniger Arbeit)

  3. Andere? Nicht sicher, ob es irgendwelche "Aufräum-" oder "Reparatur" -Codes / Tipps gibt, die möglich sind, oder ob man überhaupt daran denken sollte, dies zu versuchen ....

Danke

PS. Ich bin nicht in der Lage, Kernmigrationen für Upgrades der Anwendung zu verstehen / damit umzugehen, bei denen sich das Kerndatenschema geändert hat. Vielleicht ist dies nur eine weitere mögliche Situation, für die die obigen Fragen noch gültig sind ... Oder nicht sicher, ob der Ansatz, den man innerhalb des Codes (und mit Benutzermeldungen) annimmt, davon abhängt, ob es sich um einen Migrationsfehler oder einen separaten Fehler handelt.

    
Greg 24.04.2011, 11:44
quelle

1 Antwort

2

Lieber sicher als Nachsicht ist in Ordnung, aber verbrenne nicht viel Zeit damit. Core Data Korruption ist extrem selten. Auch der wiederholte Absturz während des Speicherns verursacht selten Probleme.

In jedem Fall besteht die einzige Möglichkeit, mit einem beschädigten Geschäft umzugehen, darin, es zu löschen. Wahrscheinlich möchten Sie eine Art Flag setzen, um die Datei zu löschen, wenn die App heruntergefahren wird. Bei Erkennung der beschädigten Datei geben Sie dem Benutzer die Möglichkeit, den Speicher zu löschen und die App neu zu starten.

    
TechZen 24.04.2011, 14:28
quelle