公正な警告: 私は Objective-C をまったく知りません。PyObjC の Foundation モジュールを使用しています。
を作成するために使用する辞書がありますNSDictionary
。例:
from Foundation import NSDictionary
d = {'a': 1, 'b': 2, 'c': 3}
nsd = NSDictionary(d)
nsd
の内容をでファイルに書き込めることはわかっていますがnsd.writeToFile_atomically_()
、すべての plist-y XML を含む文字列を取得する方法がわかりません。StringIO
オブジェクトを使用できると思うかもしれませんが、次のようになります。
>>> import StringIO
>>> s = StringIO.StringIO()
>>> nsd.writeToFile_atomically_(s,True)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: NSInvalidArgumentException - Class OC_PythonObject: no such selector: getFileSystemRepresentation:maxLength:
私はヘルプページの頭や尾を作ることができません.SOとウェブ全体を検索してみましたが、人々は私がやろうとしていることの逆をすることにもっと興味を持っているようです.
私が望むのは、次のようなことができることです:
plst = nsd.asPlistyString_()
または、 を使用する必要があるかもしれませんがNSSString
、わかりません:
plst = NSString.makePlistyStringFromDictionary_(nsd)
いずれにせよ、ヤダヤダplst
のようなものでしょう。"<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE plist PUBLIC"
誰かが私を正しい方向に向けることができますか?
編集:私は知ってplistlib
いますが、コードの将来の互換性を高めるために、Foundationでこれを直接実行しようとしています。(plistlib
かなりいいですけどね。)