0

私は Mac アプリを持っていて、そのリソースを非表示にしたいと考えています。Windows では単にリソース ファイルを作成しましたが、それらは Mac には存在しないようです。そこで、このリンクのアドバイスに従うことにしました。

リソースを事前に準備する別のアプリケーションで、すべてのリソース (テキスト ファイル、画像、サウンド ファイルなど) を取得し、それぞれをCFDataオブジェクトに変換します。CFDictionary次に、ファイル名をキーとしてオブジェクトに保存します。その後、辞書をファイルに保存します。

問題は、CFDictionary オブジェクトが自分自身をアーカイブする方法を知らないことです。また、Foundation オブジェクトを使用できず、Core Foundation だけを使用できます。CFDictionaryaを aに変換しchar*て保存する方法はありますか? または、キーと値を個別に保存し、後で読み込んで再作成する必要がありCFDictionaryますか? もしそうなら、どうすればCFDataオブジェクトを変換できますか?

4

1 に答える 1

1

を に変換するためのユーティリティ メソッドがある興味深いページを見つけました。CFDictionaryCFData

inline CFDataRef makeCFData(CFDictionaryRef dictionary)
{
    return CFPropertyListCreateXMLData(NULL, dictionary);
}

画像や音でうまくいくかどうかはわかりませんが。CFData最初にそれらを sに変換する必要がある場合があります。

于 2012-07-15T18:48:06.863 に答える