0

うまくいけば、そのタイトルは十分に明確です。とにかく、次のようです。

[NSKeyedArchiver archiveRootObject:rootObject toFile:path];

に制限されていNSPropertyListBinaryFormat_v1_0ます。

人間が読める形式にする必要があります [so xml]。興味があれば、これはプロジェクトの一部であり、最終的に「GPS アプリケーションの単体テスト方法」に関するブログ投稿を github に掲載します。

:-)

4

3 に答える 3

6

を使用NSPropertyListSerializationして変換する必要があります。myObject基本的に、シリアル化するオブジェクトが呼び出され、最終的なファイルが に格納されていると仮定するとmyPath、次のコード フラグメントのようなものを使用して XML にシリアル化します。

NSString *error = nil;
NSData *mySerializedObject = [NSKeyedArchiver archivedDataWithRootObject:myObject];
NSData *xmlData = [NSPropertyListSerialization dataFromPropertyList:mySerializedObject
                        format:NSPropertyListXMLFormat_v1_0
                        errorDescription:&error]:
if( xmlData ) {
    [xmlData writeToFile:myPath atomically:YES];
} else {
    NSLog(error);
    [error release];
}
于 2009-04-07T14:48:58.627 に答える
6

クラス メソッドを使用する代わりに、NSKeyedArchiver のインスタンスを作成し、使用setOutputFormat:NSPropertyListXMLFormat_v1_0して XML 形式を指定してみてください。唯一の欠点は、シリアライゼーションを実際に処理するには、1 つのステップで NSData オブジェクトを返すだけではないため、数行の余分なコードが必要になることです。

于 2009-04-07T14:58:04.457 に答える
0

メソッドを使用してオブジェクトクラスをエンコードする必要があります -(void) encodeWithCoder(NSCoder *)encoder {

[coder encodeObject:name forKey:@"name"];
[coder encodeObject:address forKey:@"address"];
[coder encodeObject:position forKey:@"position"];

}

于 2013-02-20T07:37:40.760 に答える