0

次のコードを使用して、NSUserDefaults にいくつかのデータ (画像、文字列、配列など) を含むクラス インスタンスを保存しています。

NSData *encodedData = [NSKeyedArchiver archivedDataWithRootObject:myClassInstance];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:encodedData forKey:@"myClassData"];
[defaults synchronize];

インターネットに接続できない場合に、このデータを使用するためにこれを行っています。

このデータはすべて NSuserDefaults でメモリにロードされますか? または、これを使用するとロードされます:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSData *encodedData = [defaults objectForKey:@"myClassData"];
4

2 に答える 2

1

呼び出すと読み込まれます

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSData *encodedData = [defaults objectForKey:@"myClassData"];
于 2013-02-05T10:10:10.643 に答える
0

データがいつロードされるかはわかりませんが、Apple のガイドラインによると、nsuserdefaults を使用してデータを保存するのは遅いため、使用しないでください。データをファイルとして書き込むだけです。NSDictionary と NSArray は、それらをファイルに書き込み、直接読み戻すことができます。

あなたは本当にこれをすべきではありません。NSUserdefaults は、環境設定と設定、非常に小さなことを行うためだけに考えられています

于 2013-02-05T10:12:15.293 に答える