NSCodingを使用してオブジェクトデータをNSDataにアーカイブするアプリケーションがあります。その後、NSDataを取得してXMLパーサーに送信し、クラウドサーバーに送信してストレージに格納します。外部ソースからNSData(NSCodingから生成)に注入しますか?
クラウドサーバ上で独自のオブジェクトを変更したり、独自のオブジェクトを作成したりして、私たちのアプリケーションでNSDataをもう一度読み込んでオブジェクトの内容を確認したい顧客がいます。
お客様はWindowsベースなので、プログラムでNSDataとして格納されているのと同じデータ構造を生成できるようにする必要があります。私はデコードしているデータキーとデータの種類をそれらに供給することができます。
NSDataオブジェクトをリバースエンジニアリングし、Objective-C以外のものから注入、変更などする方法はありますか?
UPDATE: 2012.0413追加コード:
-(void) encodeWithCoder:(NSCoder *)encoder {
//See if mama has anything for us...
[super encodeWithCoder:encoder];
//encode our state
[encoder encodeObject:[self elementName] forKey:@"name" ];
[encoder encodeObject:[self elementViewContents] forKey:@"elementViewContents" ];
[encoder encodeObject:[self elementGestureRecognizerView] forKey:@"elementGestureRecognizerView" ];
[encoder encodeCGRect:self.frame forKey:@"frame"];
[encoder encodeCGRect:self.bounds forKey:@"bounds"];
[encoder encodeCGPoint:self.center forKey:@"center"];
[encoder encodeBool:elementLocked forKey:@"elementLocked"];
}
:ここ
NSMutableData *data = [NSMutableData data];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
//go and encode ourselves so we can save our state in CD.
[self encodeWithCoder:archiver];
encodwWithCoderルーチンれる:ここで
コードは、私がデータを取得するために使用していますですありがとう!
どのNSCodingの具体的なサブクラスを使用していますか? – paulmelnikow
私のサブクラスはUIControlをベースにしています。 [ 'を呼び出して(NSCoder *)encoder': - :' @interface IoUIScreenElement(無効)encodeWithCoderするuicontrol '私のクラスでは、私は'持っていますsuper encodeWithCoder:encoder]; '次に、私のものの一部をエンコードします。それはあなたが求めていることですか? –
scooter133
いいえ、私はどのクラスが実際のエンコーダとして渡されるのだろうかと思います。たぶん 'NSKeyedArchiver'? – paulmelnikow