0

私のView Controllerには、NSCodingで保存するbools、strings、intsがたくさんあり、いくつかのクラスが同じ種類の情報をさらに保存しています。ビュー コントローラーを NSMutableDictionary に配置し、NSKeyedArchive で保存することで、すべてを結び付けます。

NSMutableDictionary *rootObject;
rootObject = [NSMutableDictionary dictionary];
[rootObject setValue:self.controllers forKey:@"controllers"];
[NSKeyedArchiver archiveRootObject:rootObject toFile:path];

NSKeyedUnarchiver を使用してビュー コントローラーを設定すると、すべての NSCoded データが返され、うまく機能します。

私は iCloud の実装を検討していますが、それを行う最善の方法について混乱しています。NSMutableDictionary を、特に保存用に作成された UIDocument クラスに保存してからロードすると、NSCoded 値が引き継がれますか?

4

1 に答える 1

2

アーカイブとは単に、何かを NSData オブジェクトに変換することを意味します。NSData オブジェクトは NSData オブジェクトです。クラウドに保存されているため、不思議なことに整合性が失われることはありません。保管していた場所 (ユーザーのデフォルト、ディスク上のファイルなど) からアーカイブを解除したときに機能した場合は、クラウドからアーカイブを解除したときに機能します。

UIDocument のオーバーヘッドは必要ないかもしれません。iCloud を使用すると、NSUserDefaults タイプのデータと同等のものをクラウド (「キー値ストレージ」) に効果的に保持できることに注意してください。これは、ユーザーの 5MB 制限にはカウントされません。

于 2012-11-24T02:55:36.257 に答える