2012-04-13 11 views
0

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ルーチンれる:ここで

コードは、私がデータを取得するために使用していますですありがとう!

+0

どのNSCodingの具体的なサブクラスを使用していますか? – paulmelnikow

+0

私のサブクラスはUIControlをベースにしています。 [ 'を呼び出して(NSCoder *)encoder': - :' @interface IoUIScreenElement(無効)encodeWithCoderするuicontrol '私のクラスでは、私は'持っていますsuper encodeWithCoder:encoder]; '次に、私のものの一部をエンコードします。それはあなたが求めていることですか? – scooter133

+0

いいえ、私はどのクラスが実際のエンコーダとして渡されるのだろうかと思います。たぶん 'NSKeyedArchiver'? – paulmelnikow

答えて

1

あなたがそうのようなあなたのキー付きアーカイバの出力形式を設定した場合:

NSMutableData *data = [NSMutableData data]; 
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data]; 
[archiver setOutputFormat:NSPropertyListXMLFormat_v1_0]; 
[self encodeWithCoder:archiver]; 

その後、NSDataのは、ちょうど何かが解析して修正することができるはずである、XMLテキスト(?UTF8でエンコードされた、私は思う)になります。

関連する問題