問題タブ [nsfilewrapper]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
macos - NSFileWrapperは遅延読み込みをサポートしていますか?
何百もの大きなファイルを含む可能性のあるパッケージを作成しているNSDocument
ので、ドキュメントを開くときにすべてを読みたくありません。
検索に時間を費やしましたが、明確な答えが見つかりません。ほとんどの人は、すべてのデータをメモリにロードすると考えているようですが、ラッパーNSFileWrapper
を呼び出すまでデータをロードしないことを示す人もいます。-regularFileContents
(例については、NSFileWrapperがすべてをメモリにロードしますか?およびObjective-C / Cocoa:画像、作業メモリ、およびストレージのアップロードを参照してください。)
ドキュメントは完全に明確ではありませんが、のようなオプションはNSFileWrapperReadingImmediate
、NSFileWrapperReadingWithoutMapping
常にすべてを読み取るとは限らないことを示唆しているようです。
NSFileWrapper
置き換えられたサブラッパーのみを書き出すことで、増分保存をサポートするものを収集します。したがって、インクリメンタルロードもサポートしていると便利です。
決定的な答えはありますか?
ios - NSFileWrapper パッケージは Mac OS X パッケージ (pkg) に似ていますか?
多くの場所で、Apple のドキュメントでは、NSFileWrapper によって作成されたファイルのパッケージ (iCloud など) について説明しています。これは、OS X プラットフォームでフォルダーを 1 つのファイルとして非表示にするために使用される .pkg 形式に似ていますか?
ユーザーがバックアップできるようにしたい複数のテキスト ファイルを含むアプリがあります。NSFileWrapper を使用して、これを行う単一の「ファイル」を作成しました。これはOS Xの.pkgファイルに似ていると思っていましたが、ファイルを(電子メールで)OS Xに持ち込んだにもかかわらず、ファイルの名前を変更したなどにもかかわらず、開く方法がありません.
では、NSFileWrapper の「パッケージ」は、OS X の「パッケージ」とはまったく異なるものですか?
ありがとう、リチャード
objective-c - OS X 用の iFinBox や iExplorer などのユーティリティ
Mac OS X用のiFunBoxやiExplorerのような接続機器の情報やファイルを取得して表示できるユーティリティアプリを作りたいです。
私は iPhone 開発の経験は豊富ですが、Mac 向けの開発はしたことがありません。
ありがとう
nsbundle - NSDocument クラス ファイル バンドルには著作権がありません
複数のリソースを含むバンドルであるカスタムファイル形式を提供するベースアプリを作成しましたNSDocument
...すべて正常に動作し、パッケージの内容などを保存、読み込み、表示できます...
問題は、gmail や Dropbox のようにインターネット経由で送信したい場合です...ファイルが縮小し (KB からバイトに)、アプリの名前も「パッケージ コンテンツの表示」も表示されません。
MIME アプリケーション/x ディレクトリ。文字セット=バイナリ
ios - UIDocument クラスのパッケージ ファイルを iCloud に移動する
ドキュメントをローカルとiCloudの両方で保存およびロードするアプリを作成しています。ローカルでは問題なく動作していますが、iCloud に問題があります。
ドキュメントはパッケージとして保存されます。UIDocument は、画像ファイル、サムネイル ファイル、および情報 plist を含む NSFileWrapper を読み書きします。ドキュメントを iCloud に保存し、[ストレージの管理] の下のファイルを見ると、パッケージではなく個々のファイルが表示されます。さらに重要なことに、NSMetadataQuery を使用してファイルを検索すると、パッケージではなく個々のファイルごとに NSMetadataItem が返されます。その結果、私のアプリはロードするパッケージがあることを認識せず、iCloud はほとんど役に立ちません。
ドキュメント タイプを設定して UTI を正しくエクスポートすれば、パッケージは適切に処理されると思いました。そうでしたか?もしそうなら、ドキュメントタイプをパッケージとして設定するためのチェックリストは何ですか?
macos - NSFileWrapper writeToURL: 「ファイルは既に存在します」というエラーで失敗します - 既存のファイルを単純に上書きする方法は?
を使用してファイル パッケージを保存する最も効率的な方法を見つけようとしていますNSFileWrapper
。
ファイル ラッパーを保存するときは、アトミックな書き込みを使用せず、前のコンテンツの URL を渡します。
ただし、2 回目の書き込みは常に次のエラーで失敗します。
もちろん、ファイルは 2 回目に存在します。2 回目に保存するからです。私が期待するのは、内容が変更されていないため、実際に何も書き出さなくても保存が成功することです。
上記のコードは flag を使用すると機能しNSFileWrapperWritingAtomic
ますが、これは最初に内容全体を一時ファイルに書き込むことになります。これは避けたいことです。ファイルのハードリンクを使用して書き込みを行ったとしても、ファイルパッケージ内のディレクトリが変更され、他の副作用が発生します (実際にはファイルは変更されず、ディレクトリ inode のみが変更されますが、iCloud レポートは変更されます)。
ファイルラッパーが既存のファイルを非アトミックに単純に上書きするためのフラグのようなものはありませんか?