保存された NSUserDefaults を表示する簡単な方法?という質問を読みました。
アプリの .plist ファイルは見つかりましたが、テスト バンドルのファイルはどこにありますか?
保存された NSUserDefaults を表示する簡単な方法?という質問を読みました。
アプリの .plist ファイルは見つかりましたが、テスト バンドルのファイルはどこにありますか?
Xcode 4 の OCUnit との統合を使用すると、実行中のアプリケーションにテスト バンドルが挿入されます。したがって、NSUserDefaults はアプリケーション自体に保存されます。これは単体テストの問題です。アプリを手動で実行すると、デフォルトがテストによって上書きされる可能性があります。
[NSUserDefaults standardUserDefaults]
直接使用する代わりに、依存性注入を使用して、初期化子の引数としてユーザーのデフォルトを渡します。次に、クエリできるテスト double を渡すことができます。(依存性注入に代わる方法は、ヘルパー メソッドから NSUserDefaults を返し、必要に応じてそのメソッドをオーバーライドしてテスト double を返すことです。)
私の環境 (Xcode 4.2、シミュレーターでテストを実行)NSUserDefaults
では、次のファイルに書き込みます。
~/Library/Application Support/iPhone Simulator/Library/Preferences/otest.plist`
のキャッシング メカニズム (クラス リファレンスで説明)が原因でファイルが表示されなかったことNSUserDefaults
と、プロジェクトの単体テストがキャッシング時間間隔が経過するのに十分な時間実行されていないことが原因だと思います。
otest.plist
ただし、テストの実行中に何かがNSUserDefault
インスタンス メソッドを呼び出した場合は、書き込まれることが保証されます。synchronize
OCUnit はNSUserDefaults
永続的に保存するのではなく、メモリに保存するようです。しかし、私は間違っている可能性があります。