うまくいけば、そのタイトルは十分に明確です。とにかく、次のようです。
[NSKeyedArchiver archiveRootObject:rootObject toFile:path];
に制限されていNSPropertyListBinaryFormat_v1_0ます。
人間が読める形式にする必要があります [so xml]。興味があれば、これはプロジェクトの一部であり、最終的に「GPS アプリケーションの単体テスト方法」に関するブログ投稿を github に掲載します。
:-)
うまくいけば、そのタイトルは十分に明確です。とにかく、次のようです。
[NSKeyedArchiver archiveRootObject:rootObject toFile:path];
に制限されていNSPropertyListBinaryFormat_v1_0ます。
人間が読める形式にする必要があります [so xml]。興味があれば、これはプロジェクトの一部であり、最終的に「GPS アプリケーションの単体テスト方法」に関するブログ投稿を github に掲載します。
:-)
を使用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];
}
クラス メソッドを使用する代わりに、NSKeyedArchiver のインスタンスを作成し、使用setOutputFormat:NSPropertyListXMLFormat_v1_0して XML 形式を指定してみてください。唯一の欠点は、シリアライゼーションを実際に処理するには、1 つのステップで NSData オブジェクトを返すだけではないため、数行の余分なコードが必要になることです。
メソッドを使用してオブジェクトクラスをエンコードする必要があります -(void) encodeWithCoder(NSCoder *)encoder {
[coder encodeObject:name forKey:@"name"];
[coder encodeObject:address forKey:@"address"];
[coder encodeObject:position forKey:@"position"];
}