6

タイトルはそれをほとんど説明しています。最初にオブジェクトをシリアル化する必要がありますか?それとも可能ですか?

4

4 に答える 4

14

オブジェクト(配列内)のオブジェクトをコーディング/デコードし、配列をNSDataにアーカイブする必要があります。

追加するだけ

<NSCoding>

オブジェクトのクラス(配列内)に移動し、コンパイラの警告に従います:D

次に、次のように配列をアーカイブします。

NSData *data = [NSKeyedArchiver archivedDataWithRootObject:yourArray];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:data forKey:@"yourKey"];


NSArray *array= [NSKeyedUnarchiver unarchiveObjectWithData:[defaults objectForKey:@"yourKey"];

これをチェックしてください http://soff.es/archiving-objective-c-objects-with-nscoding

于 2013-02-11T12:26:55.953 に答える
1

Yes you can do it.

Check for your answer here:

How to set an NSArray in NSUserDefaults?

于 2013-02-11T12:28:12.637 に答える
1

はい、可能です。保存および取得中に NULL 値を処理する必要があるだけです。

于 2013-02-11T12:31:05.083 に答える
1

シリアル化する必要があります。

NSUSerDefaults のアップルのドキュメントから:

NSUserDefaults クラスは、float、double、integer、Boolean、URL などの一般的な型にアクセスするための便利なメソッドを提供します。デフォルト オブジェクトは、プロパティ リスト、つまり、NSData、NSString、NSNumber、NSDate、NSArray、または NSDictionary のインスタンス (またはコレクションの場合はインスタンスの組み合わせ) である必要があります。他のタイプのオブジェクトを保存する場合は、通常、アーカイブして NSData のインスタンスを作成する必要があります。詳細については、プリファレンスおよび設定プログラミング ガイドを参照してください。

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSUserDefaults_Class/Reference/Reference.html

于 2013-02-11T12:23:16.613 に答える