5

ドキュメントと一緒に追加情報を保存したいのですが、バンドルやパッケージを使用できず、ドキュメント自体に保存することもできません。

このアプリケーションはテキスト エディターであり、コードの折り畳みとブックマークの場所をドキュメントと共に保存したいのですが、明らかにこれをコードに直接埋め込むことはできず、見苦しいコメントでコードを変更したくありません。

NSDocument を使用してドキュメントのリソース フォークに情報を格納できますか? もしそうなら、どうすればこれを行うことができますか? 直接書き込む<filename>/..namedfork/rsrc必要がありますか、または使用可能な API はありますか?

4

3 に答える 3

9

まず、リソースフォークを使用しないでください。事実上非推奨です。代わりに、拡張属性を使用してください。setxattrこれらは、およびを介してBSDレベルでプログラムで設定できますgetxattr。拡張属性は多くの場所で使用されています...たとえば、最新のOS Xでは、リソースフォーク自体が特別なタイプの拡張属性として実装されています。

たとえば、Cocoaテキストシステムは、エンコーディングを指定するためにファイルに拡張属性を自動的に追加します。

Snow Leopard以降、拡張属性を考えNSFileManagerNSFileWrapperサポートしましたが、ドキュメントが見つかりません:pただし、BSDレベルの関数はいつでも使用できます。

于 2011-08-09T15:42:40.947 に答える
1

別のコンピューターにコピーされた場合、状態はファイルと共に移動する必要がありますか? そうでない場合、Bare Bones が BBEdit でドキュメントの状態を処理する方法をエミュレートするよりも、はるかに悪いことをする可能性があります。~/Library/Preferences/com.barebones.bbedit.PreferenceData/Document State.plist にすべてのドキュメントの状態を保存します。

リソース フォークのドキュメントはこちらです。ただし、リソース フォークを使用しないようにするための多くの提案が含まれています。

于 2011-08-09T15:48:39.957 に答える
0

私の Web サイトには、リソース フォークを読み書きするためのクラスがありますが、Yuji が指摘するように、リソース フォークは実際には使用されなくなったため、これを GitHub リポジトリに移動することはできませんでした。

エイリアス ファイルと Web インターネット ロケーション ファイルのみが使用される場所であると言うつもりでしたが、Mac OS X v10.7 (Lion) で使用してテストしましたが、そこでは使用されていません。カスタム アイコンには引き続き使用できます。私はそれだけのためにテストしませんでした。それが 10.7 の NDAlias クラスにどのように影響するかを確認する必要があります。

ndresourcefork

于 2011-08-09T17:57:56.833 に答える