問題タブ [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.
persistence - iCloud を使用して plist ファイルを共有する
ドキュメントフォルダーにあるplistファイルにデータを保持する比較的シンプルなアプリがあります。データは、起動時に UITableView に読み込まれます。その後、ユーザーはレコードを編集、削除、または追加でき、変更はすべて plist ファイルに保存されます。
ここで、iCloud を使用してデバイス間でこのデータ (plist ファイル) を共有したいと考えています。私はドキュメントを見て、plistファイルを「管理」するためにUIDocumentを作成する必要があることを理解しています。
いくつかのiCloudチュートリアルを見てきましたが、それらはすべて、ファイル全体(plistなど)ではなく、UIDocumentクラスのプロパティ内に単純な文字列を保存します。
UIDocument オブジェクトを使用して、plist ファイル (またはその他のファイル) を iCloud で共有するにはどうすればよいですか?
plist ファイルの内容を NSData に変換し、それを UIDocument のプロパティに保存しますか? 代わりに NsFileWrapper を使用する必要がありますか?
UIDocument/iCloud の配置に頭を悩ませているようです。私はおそらくこれを実際よりも複雑にしています。
iphone - NSFileWrapper のパスを取得する
(ファイルまたはディレクトリの) NSFileWrapper オブジェクトが与えられた場合、ディスク上の実際のファイルの場所の完全なパスを取得する方法はありますか?
[fileWrapper filename]
パスではなくファイル名のみを返すため、探しているものではありません。
ios - 不正確な使用状況/ストレージを報告するアプリ
私のアプリの1つは、実際には、アプリのサンドボックス(ドキュメント、ライブラリ、tmp)内のすべてのファイルの合計サイズが平均である場合に、そのストレージ([設定]->[一般]->[使用法]->[ストレージ]を介して)を4GBとして報告することがあります。約10MB程度。
私はちょっと気が利いていて、誰かがこのようなことを経験したことがあるかどうか疑問に思っています。UIDocumentに関連するものだとこっそり疑っていますが、確信が持てません。レーダーを提出するために今続けるには少なすぎるようです。
場合によっては、アプリはシステムにストレージが不足していることをユーザーに警告するダイアログを表示するように強制します。これが発生すると、システムはアプリが使用していると思われるストレージと現実の違いを調整し、ストレージ数は10MB程度に減少するようです。
それは本当に奇妙です。
私が見るかもしれないものについてのどんな考えでもありがたいです。
contentsForType:errorの実装:
cocoa - NSAttributedString の nsfilewrapper / nstextattachment からファイル名とパスを取得する
リッチテキストとグラフィックを有効にした基本的な NSTextView があります (IB)。取得したいのは、ドラッグされた画像のパスとファイル名で、それらを別のクラスに渡すことができます。
私は NSAttributedString を初めて使用しますが、検索を使用してループがenumerateAttributesInRange:options:usingBlock:
ありNSAttachmentAttributeName
、すべて正常に機能しています。しかし、さらに深く行くと、fileWrapper クラスにたどり着き、 item のパスを明らかにできないようです。
NSTextAttachment の名前とパスを取得するにはどうすればよいですか?
関連:それらすべてを取得して属性をステップスルーする簡単な方法はありますか?
どうもありがとう!
core-data - UIManagedDocument で NSFileWrappers を使用する必要がありますか?
UIManagedDocument の一部として、plist といくつかのバイナリ ファイル (画像としましょう) を保存しようとしています。バイナリ ファイルの名前は Core Data の属性であり、それらを列挙する必要はありません。関連するエンティティを表示するときに適切なファイルにアクセスするだけです。
私が持ちたいファイル構造は次のとおりです。
これまでのところ、UIManagedDocument ファイル パッケージに追加のコンテンツを保存するにはどうすればよいですか?の指示に従って問題なく実行できました。、しかし、バイナリファイルを追加しようとすると、方法がわからないことがいくつかあります。
- URL /the/path/File yyyyMMdd-HHmmss.extdoc/ AdditionalContent (readAdditionalContentFromURL:error: で提供されるデフォルトの URL) を NSFileWrapperとして扱うべきですか? URL のみを使用する場合と比較して、利点/欠点はありますか? plist はファイル ラッパー アクセサーと NSCoder (推測) を使用して読み取る必要があるため、ファイル ラッパーを使用するのはより複雑だと思います。 objectForKey を持つノード (私は推測します)。しかし、Apple の Document-Based Apps Programming Guide for iOS では、NSData または NSFileWrapper の代わりにカスタム フォーマットに関して、「コードは UIDocument が行うことを複製する必要があることに注意してください。そのため、より複雑になり、エラーの可能性が高くなることに対処する必要があります。「私はこれを誤解していますか?
- ドキュメントごとのデフォルトはプロパティとして宣言されます。セッターは、plist をマップしてドキュメントを更新済みとしてマークする NSDictionary を変更し、ゲッターは適切なキーを使用して辞書にアクセスします。バイナリ ファイルの読み取り/書き込み機能を公開するにはどうすればよいですか? UIManagedDocument のサブクラスにメソッドを追加する必要がありますか? - (void)writeImage:(NSString*)uuid; および -(UIImage *)readImage:(NSString *)uuid; ドキュメントが保存されるまで、このデータをメモリに保持する必要がありますか? どのように?
- NSFileWrapper を使用すると仮定すると、iCloud でこのドキュメントを使用する場合、ファイル コーディネーターをファイル ラッパーで使用する必要がありますか? もしそうなら、どのように?
各質問のソース コードは大歓迎です。ありがとうございました。
PS: Core Data 内にバイナリ データを保存できることは知っていますが、その解決策には満足できません。他の理由の中でも特に、デスクトップ アプリを作成する場合は、NSImage と互換性のないシリアル化されたバージョンの UIImage である画像ファイルの PNG データを保存します。
ios - iCloudとNSFileWrapper:設定で2つの異なるファイルとして表示
NSFileWrapperベースのUIDocumentを使用するアプリがあります。私のファイルラッパーは「XXX.cp」という名前のディレクトリで、「photo.data」と「photo.metadata」の2つのサブファイルがあります。ドキュメントの保存と読み込みは正常に行われているようですが、[設定]、[ストレージの管理]、[不明]に移動すると、サブファイルが個別に一覧表示されます。
これらの2つのサブファイルの代わりに「XXX.cp」が表示されることを期待していました。ドキュメントUTIを適切に設定し、エクスポートしたと思います。
そして、私はファイルラッパーを正しく作成していると思います(特に読み取り/書き込みが正常であるため):
しかし、それでも葉巻はありません。誰もが問題が何であるか知っていますか?ありがとう!
iphone - UIDocument、NSFileWrapper、画像
(1)txtファイルと(2)いくつかのjpg画像で構成したいUIDocumentがあります。txt とすべての jpg を NSFileWrapper に入れました。
UIDocument を読み込むと、txt ファイルの情報がすぐに必要になるので、最初に読み込み、実際に必要になるまですべての画像を無視します。
画像を遅延ロードする方法は知っていますが、画像を「遅延」保存する方法がわかりません (特に iCloud を使用している場合、ファイルを不必要にアップロード/ダウンロードしたくありません)。すべての画像を読み込んで、変更していないとしましょう。次に、すべての画像を無視して(変更されていないため)UIDocumentを保存しますが、変更されたテキストを保存します。
どうすればこれを達成できますか?それは可能ですか?それとも自動的に行われますか?それとも、画像を UIDocument に入れずに、各画像を別の UIDocument で処理する必要がありますか? それは私にとって少し混乱しています、私は恐れています。
すべての画像とテキストを保存するこれまでのコードは次のとおりです(変更されたかどうかに関係なく):
UIDocument
UIDocument を保存する場合:
iphone - NSFileWrappersの置き換え
特定のFileWrapperを更新したいNSFileWrapperディレクトリがあります。私はそうするのが最善の方法は何だろうと思っていましたか?
これまで私はこのコードを使用しました:
ただし、FileWraperがすでに存在する場合は常に、FileWrapperに重複があります。
これを防ぎ、FileWrapper(この場合はphoto.data)を単純に置き換えるにはどうすればよいですか?NSFileWrapperクラスリファレンスでFileWrappersを置き換えるメソッドが見つかりませんでした。
iphone - パッケージタイプのドキュメントをメールの添付ファイルとして送信するにはどうすればよいですか?
私はパッケージタイプのドキュメントを持っています-つまり、それは実際にはフォルダですが、ファイルとして表示されるように使用NSFileWrapper
および準拠しcom.apple.package
ています-これを電子メールで共有したいと思います。私はを作成MFMailComposeViewController
し、の最初のパラメータに何を与えるかを考えようとしていますaddAttachmentData:mimeType:fileName:
。
パッケージには画像ファイルとplistが含まれていますが、将来変更される可能性があります。
パッケージをデータに変換するにはどうすればよいですか?それはこれを行う正しい方法ですか?
cocoa - さまざまなファイルで作成されたNSDocumentでNSFileWrapperを使用する
ドキュメントが動的なファイルのコレクションであるドキュメントベースのCocoaアプリを作成しています(ユーザーはファイルを追加または削除できます)。特に、保存および開く操作は可能な限り高速である必要があります。
ドキュメントを正しく理解している場合は、とを使用NSFileWrapper
して実装する必要がfileWrapperOfType:error
ありreadFromFileWrapper:ofType:error:
ます。ただし、完全なコード例を見つけることができません。次のメソッドをどのように実装する必要がありますか?