2017-05-26 10 views
-2

私はカスタムオブジェクト(カスタムオブジェクトの配列と、カスタムオブジェクトを含み、標準整数から3バイトの配列まで数えられない量のプロパティを含む)を保存します。 それで、すべてをシリアライズして、何とかNSKeyedArchiverを使ってデータに変換するために、これを再帰的にエンコードしてみると、巨大な痛みになります。私はちょうどセーブして、 ?迅速な&ココアでのカスタムオブジェクトの保存

ような何か:

//save 
NSData.makeBinaryStuffOutOf(myObject).saveIt(atSomeLocation) 
//and 
NSData.loadMyStuffAt(someLocation) as! myCustomClassThing 

答えて

1

は、私はちょうどHDにバイナリどこかのように私のメインのオブジェクトを保存してロードすることができる方法のような簡単なcが存在しないのですか?

考えてみましょう。Cでどうやったらいいですか?

あなたのデータはあなたがwrite(2)/read(2)、メモリブロックの可能性メモリの単一の連続したブロックに居住し、何の内部ポインタを含んでいなかっ場合。

しかし内部ポインタ、または関連するメモリの複数のブロックがあった場合、あなたは/に、この構造をデコード/バイトのシーケンスからエンコードすることができ、何かを書く必要があるだろう...

とその作品のビット、でもCで...

またはあなたが他の誰かがすでに書かれたコードを使用することができます...

NSKeyedArchiver

のようになりますあなたは1つだけを記述する必要が

ような巨大な痛み

アーカイバクラスについてのポイントになりそう、すべてをシリアライズし、何とかNSKeyedArchiverでデータに変換するために再帰的にこのすべてをエンコードするが、彼らはすべてのフレームワークを提供していますアーカイブ/アーカイブ解除ルーチンをクラスごとに実行すると、すべての作業が完了します。

HTH

関連する問題