変換を iPhone で行うか、サーバーで行うかは明確ではありません。サーバー上にあり、Cocoa フレームワークを使用できる場合、NSPropertyListSerialization
OS X (10.2 以降) でサポートされている plist タイプ (文字列、XML、およびバイナリ) 間で変換するサービスが提供されます。代わりにそれを使用したい場合は、Core Foundation ライブラリにも同様のメソッドがあります。
XML plist をバイナリ plist に変換するには:
NSString *xmlPlistPath; // already set
NSString *outPath; // already set
NSData *plistData;
NSString *error;
NSPropertyListFormat format;
id plist;
plistData = [NSData dataWithContentsOfFile:xmlPlistPath];
plist = [NSPropertyListSerialization propertyListFromData:plistData
mutabilityOption:NSPropertyListImmutable
format:&format
errorDescription:&error];
if(plist == nil) { // unable to parse plist
//deal with failure -- error gives description of the error
} else {
binaryPlistData = [NSPropertyListSerialization dataFromPropertyList:plist
format:NSPropertyListBinaryFormat_v1_0
errorDescription:&error];
if(binaryPlistData == nil) {//unable to create serialized plist
// deal with failure -- error gives description of the error
}
if(![binaryPlistData writeToFile:outPath atomically:YES]) {
// unable to write file
}
}
詳細については、developer.apple.com のProperty List Pramming Guideページを参照してください。