2011-01-11 30 views
2

iOSアプリケーションでplistを作成しています。これは、アプリケーションが初めて実行されたとき(ファイルが存在しないため)にデフォルト値が設定されています。今、私は、その情報の一部が変更された後に、ケースをテストしようとしています。 OS Xのプロパティリストエディタで、iPhoneシミュレータのアプリケーションのドキュメントフォルダ(〜/ライブラリ/ Application Support/iPhone Simulator/4.2/Applications/SOME-LONG-HASH/Documents/mystuff.plist)でplistファイルを開くと、それを保存すると、iOSアプリはそれを再読込めず、存在しないかのように上書きします。プログラムが作成したiOS plistを編集できません

iOSのplistを編集することはできませんか、それともこの問題についてはどうなりますか?私はAppleのドキュメントで何かを見つけることができないようだ。参考のため

、私はこの

[NSKeyedArchiver archiveRootObject:dict toFile:myFilePath]; 

そして、あなたの辞書は唯一の文字列、数値、配列、および辞書が含まれている場合は、あなたが使用する必要があります。この

NSDictionary *dict = [NSKeyedUnarchiver unarchiveObjectWithFile:myFilePath]; 

答えて

1

のようにそれにアクセスするようにNSDictionaryのを保存していますNSDictionaryのメソッドwriteToFile:atomically:およびinitWithContentsOfFile:データを保存およびロードします。あなたの問題はおそらくNSKeyedUnarchiverがバイナリ形式を使用している間、XML形式でファイルを書くプロパティリストエディタによって引き起こされます。アプリケーションに名前を付けて保存すると、タイプを指定できます。

+0

私は二重チェックして、それを読み込む形式でplistを保存します。私はアプリで生成された新しいコピーを開き、保存したBOOLを変更しました。チェックをはずして)、名前を付けて保存し、バイナリが選択されていることを確認しました。私はまだNSKeyedUnarchiverがアプリケーションでnilを返し、plistがデフォルト値で再生成されるのと同じ問題に遭遇します。 writeToFileとinitWithContentsOfFileを試してみますが、ディクショナリの値は自分のクラスであり、NSCodingを使うので、うまくいけば分かりません。 – Aaron

+0

独自のクラスを使用している場合は、以前と同じようにアーカイバを使用する必要があります。 – ughoavgfhw

+0

キー付きアーカイバはplist形式を使用しません。これは、エディタが開くような形式を使用しますが、エディタを保存するとplistとして保存され、unarchiverは読み取れません。 – ughoavgfhw

関連する問題