プロパティリストの作成
この節の例では、プロパティリストを作成して操作する方法を示します。エラーチェックコードは、わかりやすくするために削除されています。実際には、悪いパラメータを Core Foundation ルーチンに渡すとアプリケーションがクラッシュする可能性があるため、エラーをチェックすることが 必須 です。
リスト 1 は、CFString オブジェクトの配列である非常に単純なプロパティリストの作成方法を示しています。
リスト 1 : 配列から単純なプロパティリストを作成する
#include <CoreFoundation/CoreFoundation.h> #define kNumNames 6 void main () { CFStringRef names[kNumNames]; names[0] = CFSTR("Steve"); names[1] = CFSTR("Susan"); names[2] = CFSTR("Sally"); names[3] = CFSTR("Patrick"); names[4] = CFSTR("Jeff"); names[5] = CFSTR("Jane"); // Create a property list using the string array of names CFArrayRef array = CFArrayCreate(kCFAllocatorDefault, (const void **)names, kNumNames, &kCFTypeArrayCallBacks); // Convert the plist into XML data CFErrorRef myError; CFDataRef xmlData = CFPropertyListCreateData(kCFAllocatorDefault, array,
kCFPropertyListXMLFormat_v1_0, 0, &myError); // Check for errors, do things with the data // Clean up CF objects. CFRelease(array); CFRelease(xmlData); CFRelease(myError); }
リスト 2 は、リスト 1 で作成された xmlData の内容がスクリーンに印刷された場合の外観を示しています。
リスト 2 : サンプルプログラムで作成された XML
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <array> <string>Steve</string> <string>Susan</string> <string>Sally</string> <string>Patrick</string> <string>Jeff</string> <string>Jane</string> </array> </plist>
前の章 次の章