問題タブ [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.

0 投票する
1 に答える
187 参照

iphone - iOSでNSFileWrapperから映画を再生する

与えられた映画をどのように再生しますNSFileWrapperか?

initWithData:でコンストラクターを見つけることを期待していましたがMPMoviePlayerController(のようにAVAudioPlayer)、提供されているだけinitWithContentURL:です。

0 投票する
1 に答える
1386 参照

objective-c - NSTextViewでgif画像を表示する方法

私はmac開発に不慣れです。NSTextViewをサブクラス化して、richEditに関するアプリを開発しています。カスタマイズしたtextViewに、.bmp.jpeg.pngのような画像を挿入できます。コードは次のようになります。

この方法では、これらの画像はうまく機能しますが、画像がgifの場合、アニメーションは表示されません。だから、私はこれを表示しようとしました:

最後に、gifアニメーションが機能します。しかし、私の問題が発生します。gif画像をクリックまたは選択しても、右クリックのコンテキストメニューが表示されませんが、他の種類の画像のコンテキストメニューは適切に機能します。

0 投票する
2 に答える
1144 参照

macos - Cocoa で 2 つのファイルが同じかどうかを確認する

Cocoa で 2 つのファイルが同じ (同じデータを持っている) かどうかを効率的にチェックするにはどうすればよいですか?

コンテキスト: ファイルを入力 (入力ファイル) として受け取り、それをディレクトリにコピーするプログラムを作成しています。ディレクトリに同じ名前のファイル (同名のファイル) が既に含まれている場合は、同名のファイルが異なる場合にのみ、入力ファイルを新しい名前でコピーする必要があります。

0 投票する
0 に答える
262 参照

macos - fileWrapperOfType でのユーザー操作のブロックを解除します

NSDocument に非同期保存を実装したいと思います。ドキュメントによると、書き込み中にYES を返してcanAsynchronouslyWriteToURL:ofType:forSaveOperation:から呼び出す必要があります。unblockUserInteraction

私のドキュメントではfileWrapperOfType:error:、NSFileWrapper を返すだけで書き込みが実行されます。

これについて、ドキュメントには次のように書かれています。

たとえば、 fileWrapperOfType:error: のデフォルトの実装は、返す NSFileWrapper オブジェクトを作成したときに [unblockUserInteraction] を呼び出します。NSFileWrapper が後続のユーザー アクションによって変更されないと仮定すると、それは実質的にドキュメントのコンテンツの「スナップショット」であり、一度作成されると、メイン スレッドでユーザー イベントの処理を安全に再開できます。 NSFileWrapper オブジェクトが安全に書き込まれる前に、ドキュメントの内容を変更してください。

現在、私のコードでは のself.myMutableFileWrapper後に変更できるfileWrapperOfType:errorため、ドキュメントに記載されているように変更されないとは限りません。

これは、ファイル ラッパーのコピーを作成するように変更fileWrapperOfType:error:してから を呼び出す必要があるということunblockUserInteractionですか? このようなもの:

上記が正しい場合、NSFileWrapper のコピーを作成するにはどうすればよいですか? また、潜在的に巨大な NSFileWrapper のコピーを作成すると、非同期保存のパフォーマンス上の利点が無効になりませんか?

0 投票する
1 に答える
2071 参照

ios - NSKeyedUnarchiver SIGBUS BUS_ADRALN クラッシュ

通常は非常にうまく機能する次の方法で、NSFileWrapper のデータを解凍します。

ただし、回線の SIGBUS クラッシュが時々発生しますunarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];。このタイプの例外は、私の例外ハンドラーによってキャッチされていないと思いますか? このような例外に対処するにはどうすればよいですか?また、その原因は何ですか?

Crashlytics のクラッシュ レポートは次のとおりです。

0 投票する
1 に答える
644 参照

ios - コアデータ、写真、iCloud を備えた iOS アプリ

iCloudと同期したいユーザー生成データを保存するためにコアデータ(UIManagedDocumentを使用)を使用するアプリを開発しています。また、ユーザーがカメラで撮影した写真をアプリ内で同期したいと考えています。

実際の写真をコア データ内に保存するのは得策ではないことを読みました。むしろ、写真をファイル システムに保存し、fileURL をコア データに配置する方が適切です。

この方法を使用して、UIDocument を使用してファイル システム (Documents フォルダーの下) に写真を保存するときに推奨される方法は何ですか? 私は考えました:

  1. 個々の写真ごとに、NSFileWrapper (実際の画像とサムネイル画像を含む) を使用するか、
  2. トップレベルの NSFileWrapper を使用し、各写真にすべての NSFileWrapper を入れます
  3. #2と同様ですが、すべての写真/サムネイルを最上位のNSFileWrapperに直接配置するだけです

写真をiCloudと同期するには、どのアプローチが適していますか? より良いアプローチはありますか?

0 投票する
1 に答える
153 参照

iphone - NSFileWrapperを使用してUIDocumentにBOOLを格納する

これは私が信じられないほど厚いかもしれませんが、UIDocumentにBOOLを格納するにはどうすればよいですか?現在、「contentsForType:error:」メソッドに文字列と画像を保存するためにNSFileWrappersを使用していますが、ブール値をNSDataに変換する方法がないため、最善の方法は何でしょうか。

ありがとう

0 投票する
1 に答える
801 参照

ios - NSKeyedUnarchiverオブジェクトにキーが見つかりません

私は通常、次のNSFileWrapperようにデータをエンコードします(NSFileWrapperビットは省略します)。

そして、私は通常、これを行うときにデータを取り戻します。

時々、私はNSData戻ってきます(それはnilではありません)が、[unarchiver decodeObjectForKey:@"data"]NILを返します。キー@"data"のオブジェクトはあるはずなのに、ないように見えます。エンコード時に問題が発生したに違いないと思いますが、これをトラブルシューティングする方法がわかりません。data正しいキーを持っているかどうかを心配することなく、入っているものをすべて取り出してエンコードできますか?つまり、重要な「データ」は1つだけである必要があります。

0 投票する
2 に答える
1172 参照

macos - NSFileWrapperはnilを返しますが、場合によっては

NSFileWrapperパッケージドキュメントに使用しています。パッケージ内のファイルのデータを要求すると、が表示されることがありますnil

これは、パッケージ内のファイルのデータをクエリする方法です。

このメソッドは、最終的に一部のファイル(すべてではない)に対してnilを返し始めます。悲しいことに、私は問題を一貫して再現することができませんでした。

それが役立つ場合は、これが私がパッケージを開く方法です:

パッケージ内のファイルのデータを更新する方法は次のとおりです。

これが私がパッケージを保存する方法です:

なぜこれが起こっているのですか?それを防ぐ方法はありますか?

のドキュメントは、regularFileContentsこの問題について説明しているようです。

readFromURL:options:error:またはinitWithURL:options:error:を呼び出した後、NSFileWrapperがファイルの内容を読み取る前に、ユーザーがファイルを変更すると、このメソッドはnilを返す場合があります。NSFileWrapperReadingImmediate readingオプションを使用して、その問題の可能性を減らします。

しかし、この状況を防ぐために上記のコードで何を変更する必要があるのか​​わかりません。

失敗した実験

nilを返す場合はドキュメントを保存しようとしましたregularFileContentsが、その後もnilが返されます。このような:

0 投票する
1 に答える
314 参照

objective-c - iCloud ファイル パッケージの変更点を特定できますか?

複雑なアプリケーションの状態を維持するために、ディレクトリベースの NSFileWrapper (別名ファイル パッケージ) で iCloud 対応の UIDocument を使用しようとしています。私のアプリでは、ユーザーは多くの異なる構成を持つことができます (潜在的なドライバーごとにシート設定がある車のようなものです)。

個々の状態ごとに、通常のファイル NSFileWrapper をファイル パッケージ全体に追加します。

UIDocument のクラウドへの書き込みとクラウドからの読み取りは正常に機能しています。ファイル パッケージが変更されたときにも通知を受け取ります。

問題は、サブファイル (つまり、状態) への追加または変更のどれがパッケージを変更したのか、通知から判断できないことです。

カスタムUIDocumentでpresentedSubitemDidChangeAtURLをオーバーライドしようとしましたが、パッケージのURLしか得られません。ファイル ラッパーの matchesContentsOfURL メソッドも試してみましたが、子ファイル ラッパーには「実際の」URL がないため、正しくないようです。

コメントや提案を歓迎します。