If
NSUserDefaultsが保存されているかどうかを確認できるステートメントが必要です。
2 に答える
重要なのNSUserDefaults
は、介入なしでデータを透過的に保存するため、データが保存されているかどうかを確認できないことです。
ただし、を呼び出すことで強制的に保存することができます。これにより、保存が成功したかどうかが示さ[[NSUserDefaults sharedUserDefaults] synchronize];
れます。BOOL
このメソッドのドキュメントには次のように書かれています。
このメソッドは定期的に自動的に呼び出されるため、自動同期を待つことができない場合(たとえば、アプリケーションが終了しようとしている場合)、またはユーザーのデフォルトをディスク上にあるものに更新する場合にのみ、このメソッドを使用してください。変更は加えていません。
問題は、データが正常に保存されたかどうかではなく、特定のオブジェクトがユーザーのデフォルトに保存されているかどうかを尋ねることだと思います。
ユーザーのデフォルトは、API の観点から言えば単なる辞書であるため、特定のキーのオブジェクトを取得しようとすることができます。返されたオブジェクトが でない場合、nil
そのキーに対して何かが保存されていることは明らかです。逆に、戻り値が の場合nil
、何も格納されていないため、おそらくデフォルト オブジェクトをロードするか、他の種類の不測の事態を実行する必要があります。