Ich habe ein Problem über die Programmierung einer OSX-Anwendung auf Xcode 5 während der Verwendung der NSUserDefaults. Normalerweise verwenden wir einfach [[NSUserDefaults standardUserDefaults] setObject:@"This is an object" forKey:@"Test"]
, um sich an eine Benutzereinstellung zu erinnern. Danach erzeugt die Anwendung eine PLIST-Datei unter ~/Library/Preferences/application.bundle.identifier.plist.Xcode 5.0 NSUserdefaults noch gespeichert Einstellungen nach dem Löschen der Plist
Das Problem ist, nachdem die PLIST-Datei gelöscht wurde, konnte die Anwendung immer noch die Präferenzen erhalten, die ich gespeichert habe. Es gibt keine Möglichkeit, diese PLIST zu löschen, selbst wenn ich versuche, das Projekt zu säubern, xcode neu zu starten, die Dateien im abgeleiteten Ordner zu löschen. Die einzige Möglichkeit für mich, dieses Problem zu lösen, besteht darin, das System neu zu starten, also denke ich, dass etwas im Speicher gespeichert ist. Die Frage ist, wie kann ich diese gespeicherten Einstellungen löschen? (Ich glaube nicht, dass es bequem ist, die Einstellungen zu löschen, indem Sie beim Debuggen und Testen manuell Code hinzufügen.) Und ich habe die frühere Version von Xcode 4.x ausprobiert, da gibt es kein Problem. Wer hat Interesse könnte gerade ein neues Kakao-Projekt erstellen, und den Code wie hinzufügen:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:@"This is an object." forKey:@"Test"];
NSLog(@"%@", [defaults objectForKey:@"Test"]);
unter „applicationDidFinishLaunching“. Dann gehen und löschen ~/Library/Preferences/application.bundle.identifier.plist
. Danach kommentieren Sie die Zeile: [defaults setObject:@"This is an object." forKey:@"Test"];
in Ihrem Code und führen Sie die Anwendung erneut aus. Die Konsole zeigt weiterhin "This is an object."
Meine Umgebung ist Mavericks GM und Xcode 5.0 (5a1413).
Hoffe, das ist nicht nur etwas passiert nur mir und jede Hilfe geschätzt!
Mit welchem SDK verknüpfen Sie? Wenn Sie unmittelbar nach dem Löschen auf die Einstellungen zugreifen und die gelöschten Daten erhalten, ist es möglich, dass die Daten zwischengespeichert werden. – SevenBits
mögliches Duplikat von [Wo speichert NSUserDefaults Daten unter Mac OS X?] (Http://stackoverflow.com/questions/19234665/where-does-nsuserdefaults-store-data-on-mac-os-x) –