環境設定ファイルを読む

と言っても自分の環境設定ファイルでは無く他のプログラムのです。自分ので有れば NSUSerDefaults で出来ますから。NSString で読み込んで propertyList で NSDictionary にセットしようとプログラムを書いて実行してみると、なんと NSString での読み込み時にエラーとなってしまいます。あれ〜?環境設定ファイルって普通の XML 形式じゃぁ無かったっけ??

調べる為にネットの海へダイブ、じゃ無くサーフィン。10.3 迄は普通のテキスト XML だったらしい、が 10.4 からバイナリ plist だそうな、ふーん。どうすれば良いの??

テキスト形式とバイナリ形式を相互に変換するコマンドが有るそうです。plutil これでバイナリ形式からテキスト形式にして読み込めば当初の目的が実現できる。ただ plutil はコマンドツールなので NSTask と NSPipe を使って plutil の出力を標準出力に指定して実行し NSPipe で標準出力設定した pipe から読み込む、っと。

実際に実行してみると、小さい環境設定ファイルだと NSTask の waitUntilExit で終わるのを待ってから読み込めるのですが、大きい環境設定ファイルだと何時まで経っても処理が帰って来ません。とりあえず waitUntilExit をしないで実行すると読めたんですが、正しくはどうするんだろう?

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です