1

クロスプラットフォーム コードを大量に含むアプリを Cocoa に移植しています。ロード/保存のためにディスク上のファイルを直接操作する低レベルのファイル処理ルーチンを使用することは必須です。

NSFileWrapperメモリ内のファイルの内容を表示するように設計されており、NSDataディスク上の実際のファイルの詳細を抽象化するため、それを直接使用することはできませんよね?

したがって、以下を使用して低レベルのファイル処理コードを使用できるようにするには

  • fopen()
  • fread()

私たちが考えている同様のANSI-Cのもの

  1. NSFileWrapperのAPI を使用してNSDocument
  2. NSDataファイルラッパーから一時に書き戻します。フォルダー
    (例: ~/Library/Caches/ )
  3. その温度を引き渡します。ファイル(〜100k .. 1MB)を下位レベルに。

ファイルの書き込みも同様に機能しますが、その逆です。

さて、このアプローチは、 が表すファイルに直接アクセスする最も簡単な方法ですか? NSFileWrapperファイル ラッパーの一部の API を見落としていませんか?

特にサンドボックスとiCloudについて考えてみると、何か問題が発生する可能性はありますか?

複数のファイルを含むファイル バンドルをサポートしたいので、ファイル ラッパー ベースの API を使用し、ベース メソッドをNSDocument使用しないようにしたいと考えています。NSURL

フィードバックや批評家は大歓迎です!

4

1 に答える 1

2

あなたの質問に直接答えることはできませんが、必ず読んでいただきたいことがあります。ファイル システム プログラミング ガイドでは、利用可能なさまざまなメカニズムについて詳しく説明しています。File Coordinators (によって使用されNSDocument、その機能の一部を取得するためだけにハッキングしようとするよりも優れていますNSDocument) と Techniques for Reading and Writing Files Without File Coordinatorsに関する部分に特に注意を払います。これには、安全な非同期ファイル アクセスが含まれます。グランドセントラルディスパッチを使用。

これが役立つことを願っています。

于 2014-03-13T17:15:18.507 に答える