Ich habe einige verschiedene Artikel zur Fehlerbehebung und Fragen und Antworten gelesen, in denen der Schuldige eine beschädigte Einstellungsdatei für eine Anwendung oder einen Prozess ist. In der Regel besteht die Lösung darin, die Datei mit den fehlerhaften Einstellungen zu löschen und zuzulassen, dass beim Neustart der Software, die sich schlecht verhält, eine neue Standardeinstellungsdatei erstellt wird.
Wie wird eine Einstellungsdatei beschädigt? Handelt es sich lediglich um einen Lese- / Schreibfehler auf niedriger Ebene, oder tritt in einigen Fällen ein Fehler auf höherer Ebene auf? Ist es nur fehlerhaftes oder falsch geschriebenes XML?
Ich glaube, ich plutil
könnte Ihnen sagen, ob es einen syntaktischen Fehler in der Datei gibt, aber wie wurde der Fehler eingeführt? Ich bin mir nicht sicher, aus welcher Quelle diese beschädigten Dateien stammen. Vielen Dank.
-writeToFile:atomically:YES
("Die Daten werden in eine Sicherungsdatei geschrieben, und dann wird - sofern keine Fehler auftreten - die Sicherungsdatei in den angegebenen Namen umbenannt"). Die POSIX-rename()
Funktion garantiert, dass die Datei "auch dann vorhanden ist, wenn das System mitten im Vorgang abstürzt".Ich würde wetten, dass in fast allen Fällen nichts syntaktisch an der plist-Datei falsch ist. Die Funktionen von Apple zum Laden und Speichern von Plist-Daten finden viel Beachtung und werden häufig verwendet. Fast jeder Fehler wurde inzwischen gefunden und behoben.
In der Einstellungsdatei (plist) einer App werden einfach einige ihrer speicherinternen Datenstrukturen auf der Festplatte gespeichert. Wenn die App also einen Fehler aufweist, der dazu führt, dass etwas falsch eingestellt wird, wird sie gespeichert.
Wenn sich eine App schlecht benimmt, können Sie sie häufig einfach beenden und neu starten. Dadurch werden viele Teile davon zurückgesetzt und das Problem möglicherweise behoben. Einstellungsdateien werden jedoch von der Festplatte neu geladen. Wenn also der betroffene Teil der App in einer dauerhaften Voreinstellung gespeichert wurde, hat ein Neustart der App keine Auswirkungen: Der fehlerhafte Wert wird nur erneut geladen. In diesem Fall kann das Löschen der Voreinstellungsdatei hilfreich sein. Es ist wie ein Neustart der App, aber für Dinge, die gespeichert wurden.
Diese Dinge können passieren, weil Programmierer davon ausgehen, dass die Daten in ihrer App korrekt sind. Wenn eine Farbe nur vom Benutzer ausgewählt werden kann, der auf ein Standard-Farbradsteuerelement klickt, führt er wahrscheinlich keine zusätzlichen Arbeiten durch, um zu überprüfen, ob sie korrekt ist, bevor er sie verwendet. (Im Vergleich dazu eine App wie Safari hat eine Tonne zusätzlicher Arbeit alles zu überprüfen, denn es lädt und laufen Dateien direkt aus dem Internet.)
Der Vorteil ist, dass es fast immer korrekt ist und es viel einfacher ist, wenn Sie davon ausgehen, dass die internen Werte korrekt sind. Der Nachteil ist, dass, wenn sich ein schlechter Wert irgendwie einschleicht (wie der Benutzer etwas völlig Unerwartetes getan hat), die Dinge durcheinander geraten können, bis alles zurückgesetzt ist.
quelle
Als technisch anspruchsvoller Senior stellte ich fest, dass meine iTunes-Einstellungsdatei beschädigt war und die Lizenzvereinbarung bei jedem Öffnen von iTunes zustande kam. Außerdem mussten alle meine Einstellungen zurückgesetzt werden. Ich glaube, die obigen Antworten sind richtig, da ich kurz vor diesem Problem gezwungen war, meinen Computer zwangsweise herunterzufahren (elektrische Probleme in der Umgebung) und mehrmals neu zu starten / halb neu zu starten. Die Anträge wurden beendet, bevor die Anweisungen / das Schreiben abgeschlossen waren. Das Update zum Erstellen einer neuen iTunes-Voreinstellungsdatei wurde jedoch online angezeigt und war sehr einfach durchzuführen. Es hat das Problem behoben.
quelle