2011-01-11 4 views
2

Ich erstelle eine PLIST in meiner iOS App, die beim ersten Start der App mit einigen Standardwerten gefüllt wird (da die Datei nicht existiert). Im Moment versuche ich einen Fall zu testen, nachdem einige dieser Informationen geändert wurden. Wenn ich die PLIST-Datei im Dokumenten-Ordner des iPhone-Simulators (~/Bibliothek/Anwendungsunterstützung/iPhone Simulator/4.2/Anwendungen/EINIGE-HASH/Dokumente/mystuff.plist) im Eigenschaftslisten-Editor von OS X öffne, nehmen Sie meine Änderungen vor und dann speichern Sie es, die iOS-App kann es nicht erneut lesen und überschreibt es, als ob es nicht existierte.Ich kann das programm generierte iOS plist nicht bearbeiten

Ist es nicht möglich, ein iOS-Gerät zu bearbeiten, oder mache ich das falsch? Ich kann nichts in Apples Dokumenten finden.

Als Referenz Ich bin ein NSDictionary wie dieses

[NSKeyedArchiver archiveRootObject:dict toFile:myFilePath]; 

Spar Und wie diese

NSDictionary *dict = [NSKeyedUnarchiver unarchiveObjectWithFile:myFilePath]; 

Antwort

1

Zugriff Wenn nur Ihre Wörterbuch Strings, Zahlen, Arrays enthält, und Wörterbücher, die Sie nutzen sollten die NSDictionary-Methoden writeToFile: atomically: und initWithContentsOfFile: um die Daten zu speichern und zu laden. Ihr Problem wird wahrscheinlich dadurch verursacht, dass der Eigenschaftenlisteneditor Ihre Datei im XML-Format schreibt, während NSKeyedUnarchiver ein Binärformat verwendet. Sie können den Typ angeben, wenn Sie in der Anwendung Speichern unter ... verwenden.

+0

Ich habe es geprüft und der Property List Editor speichert ein Plist in dem Format, in dem es eingelesen wird. Nur um sicher zu sein, öffnete ich eine neue Kopie von meiner App, änderte die gespeicherte BOOL die ich ändern wollte (im Grunde nicht aktiviert), Save As und sichergestellt, dass binary ausgewählt wurde. Ich habe immer noch das selbe Problem, bei dem NSKeyedUnarchiver in der App nil zurückgibt und das plist mit den Standardwerten neu generiert wird. Ich werde die WriteToFile und InitWithContentsOfFile versuchen, aber die Werte im Wörterbuch sind meine eigenen Klassen und alle verwenden NSCoding, so dass ich nicht sicher bin, ob es funktioniert. – Aaron

+0

Wenn Sie Ihre eigenen Klassen verwenden, müssen Sie wie gewohnt Archibi verwenden. – ughoavgfhw

+0

Ein verschlüsselter Archivierer verwendet kein plist-Format. Es verwendet ein ähnliches Format, das der Editor öffnen wird, aber beim Speichern des Editors wird es als Plist gespeichert, was der Unarchivierer nicht lesen kann. – ughoavgfhw

Verwandte Themen