問題タブ [nscache]

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 に答える
54 参照

python - サーバーからいくつのオブジェクトを取得する必要があり、NSCache に保存できるオブジェクトはいくつですか?

私のサービスは一度に最大 500 個のオブジェクトを返します。データ量が 60 個のオブジェクトを超えると iPhone アプリケーションがクラッシュすることに気付きました。この問題を回避するために、上位 40 件の結果のみを返すクエリを実行していますが、データ全体を返すよりも遅いです。

  1. ベスト プラクティスとは何ですか? また、より多くのオブジェクトを取得するにはどうすればよいですか?
  2. iPhoneのアプリケーションに割り当てられるメモリの最大量は何ですか?それを拡張する方法はありますか?
  3. サーバーからいくつのオブジェクトを取得する必要がありますか
  4. NSCache にはいくつ保存できますか?
0 投票する
0 に答える
30 参照

iphone - アプリがバックグラウンドになったときに Png がパージされる

AFNetworking を使用して URL から画像を保存しています。NSCache を使用して、要求された URL から画像をキャッシュします。アプリがバックグラウンドになり、電話がロックされると、png は消去されますが、jpeg は消去されません。NSCache に自動有効期限ポリシーがあることを読みました。

この奇妙な問題を解決するのを手伝ってください。

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

ios - SDWebImage はメモリ キャッシュとディスク キャッシュの両方を使用しますか (必要な場合)? そうでない場合、これをどのように処理すればよいですか?

私のアプリは多くの画像のダウンロードを扱っているため、ユーザーにとってできるだけ速くしたいと考えています。できれば、イメージをダウンロードしたら、再度ダウンロードする必要がないようにする必要があります。

私の最初の戦略は、すべてを に保存することでしたUIImagesNSArray、最終的には大量のメモリ/RAM を消費します。

次にNSCache、メモリ使用量が高くなりすぎた場合にアイテムを自動的に削除する を使用することを考えました。これに関する私の問題は、アイテムが削除されると、次に必要になったときに画像を再ダウンロードする必要があることです。

NSCache私の最善の解決策は、それらをスタイルソリューションNSCacheに保存し、アイテムを削除するときにディスクに保存することです(そして、もっと良いものが足りない場合は教えてください) 。したがって、次回必要になったときに再ダウンロードする必要はなく、キャッシュによって削除されたとしても、サーバーから再度取得するよりもディスクから取得する方が高速です。

SDWebImageのようなライブラリ(画像が複数回ダウンロードされないようにキャッシュを使用していると理解しています) がそのようなソリューションを使用するのか、それともNSCache、メモリ使用量が高すぎる場合に画像が単純に消えてしまう場所に似ているのか、興味があります。再ダウンロードが必要になります。(ただし、アプリの実行が終了したら、それ以上ディスクに残したくありません。)

私はこれを完全に間違って見ていますか?まったく違うことをするべきですか?

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

ios - tableviewcontrollerに画像をキャッシュする

TableViewcontroller のキャッシュに画像を保存したいと思います。以下のコードを書きましたが、cacheImage は常に nil です。

Joe のアドバイスとして次のコードを使用しましたが、それでも cell.imageview.image は常に nil です。

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

generics - Swift: ジェネリックと AnyObject へのダウンキャスト

次のような状況があります:(プレイグラウンドにコピーするだけです)

これにより、「setObject のオーバーロードが見つかりませんでした ...」というエラーが発生します。

問題は addUID の aObj のタイプであることはわかっていますが、コンパイラにとっては明確ではありません。

途中で言うだろう

ただし、この場合、 a は一般的なトピックを完全にスキップできます。aObj を AnyObject や NSObject などにダウンキャストしようとしましたが、うまくいきませんでした。

何か案は?

汎用バージョンのキャッシュがあればいいのですが:)

アップデート:

解決策は、プロトコルに @objc 属性を追加することです。したがって、プロトコルはクラスに対してのみ使用できますが、これはプロトコルの一般的な制限につながります。クラスmanageUIDのローカルソリューションが好きです。

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

ios - NSDiscardableContent または NSMutableDictionary を使用した NSCache?

現在、NSCacheアプリのデータを保存するために使用しています。そのデータはいつでもサーバーから再度取得できるため、最終的にデータを紛失しても問題ありませんNSCache

問題は、アプリがバックグラウンドNSCacheでデータを削除するたびに発生することです。メモリの改善に本当に必要な場合、またはオブジェクトが限界に達した場合を除き、データを削除したくありません。

NSDictionaryメモリを大量に使用している場合、アプリをバックグラウンドで切り替えて強制終了したくありません。必要に応じて、またはメモリ警告が表示されたときに、サブクラスNSDictionary化してそれ自体を明確にすることができますが、これは大変な作業になると思います。

NSCache私は周りを読んで、プロトコルで使用するいくつかの提案を見つけましたNSDiscardableContentが、実装のサンプルコードは実際には見つかりませんでした. これが私の場合の最善のアプローチであるかどうかさえわかりません。

助言がありますか?

アップデート:

github でこのコードを見つけたので、期待どおりの結果が得られました。したがって、それは使用NSDiscardableContentされず、アプリがバックグラウンド状態になった場合にオブジェクトを削除しないということが起こっていることを特定できません。- (void)cleanUp彼のメソッドはオブジェクトを削除するたびに呼び出されNSCache、オブジェクトが制限に達したか、メモリ警告を受け取った場合にのみ続行すると思います。

とにかく、私はサードパーティのコードを使用するのが好きではないので、誰かがこの動作を模倣するのを手伝ってくれるなら、大きな助けになるでしょう.

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

ios - NSOperatoinQueue を使用して UIScrollView にリモート サーバー イメージをロードする


UIScrollViewwith に「イメージ」(リモートサーバー内)をロードしたいNSOperatoinQueue。通常でロードするとNSURLNSDataまたはNSMutableURLRequestすべての画像をロードするのに時間がかかりすぎるためです。その後、それらの画像を に示しますUIButton。これが私のコードです:

上記のコードの何が問題なのか、誰か教えてもらえますか? リモート サーバーからのデータの解析または取得に問題はありません。で確認しNSLogます。NSOperationQueue適切に管理できない問題があると思います。前もって感謝します。さらに情報が必要な場合は、ここに添付します。良い1日を。

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

ios - oneViewController から anotherViewController に渡される NSCache UIImage データ

最初にシナリオを説明しましょう。その中にand があり、 asUIScrollViewをいくつか追加します。これらのボタンでは、(リモート サーバーから) いくつかの画像を読み込んでいます。ですべての画像を読み込んで保存します。読み込みに時間がかかるため、 this を使用したかったので、 otherでリモートサーバーから再度読み込む必要がないようにしました。だから、私は別の人に を渡します。それでも、それが可能かどうかはわかりませんか?それについて教えてください。以下にコードを示しますので、ご覧ください。UIButtonsubViewNSMutableURLRequestNSCacheNSCacheViewControllerNSCacheViewControllerSegueNSCache

よろしくお願いします。良い1日を。

MainViewController.h:


MainViewController.m:



SecondViewController.h:


SecondViewController.m:

追加:
私 は再びSecondViewController作成し、私がそれを求めたとき、何の価値も得られませんでした。ここで何かが欠けていると思います。または適切な方法に従っていない。NSCache *imageCache;NSlog

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

ios - NSCache インスタンスの値が設定されているかどうかを確認する方法

NSCacheのようなインスタンスがあります。NSCache *imageCache;基本的には、リモートの「イメージ」値を異なる で保持するために使用されます"@keys"。私は最初にグローバルクラスにalloc&いて、次のように条件を設定します:init NSCacheif else

毎回画像を解析する必要がないように、すべて#importの「グローバルクラス」を使用します。しかし、問題は、私が他の場所にViewControllers行くときです。と同じように画像の読み込みに時間がかかるためです。条件が完全に機能していないか、設定されているかどうかを確認する適切な方法ではないと思います。誰がそれの何が悪いのか教えてもらえますか? もう 1 つ、グローバル変数から使用されます。 前もって感謝します。 良い一日を過ごしてください。ViewControllersNSCache allocinit1stVCif elseNSCacheimageCache

添加:

UIButtonsこれは、 inUIScrollViewを as としてロードする方法subViewです。これはUIViewClass、「EveryViewController」に追加したものです。行subViewを見てくださいif (cachedImage)。それは正常に動作します。しかし、(iADImageCache)が設定されているかどうかを確認したい場合、NSCache設定されていないことがわかります。しかし、どれを設定する必要があります。この状況では、どうすればすべての名前iADImageCacheを異なる@"Key"名前で確認できますか? 再度、感謝します。