2

これは iOS フレームワークのバグではないかと思います。NSURLCache setMemoryCapacity: メソッドが 0 で呼び出され、キャッシュを停止します。

UIWebView を提示するときにこれが起こるのを見ています。私は SDURLCache を使用して setMemoryCapacity: をオーバーライドし、渡された memoryCapacity がゼロの場合はそこにブレークポイントを配置して、誰がクリアしたかを確認できるようにしました。

(gdb) bt
#0  -[SDURLCache setMemoryCapacity:] (self=0x18fc80, _cmd=0x347fee55, memoryCapacity=0) at /Users/me/Documents/Work/Clients/Joe/iphone-TESTapp/SDURLCache/SDURLCache.m:447
#1  0x33ddac3e in +[WebView(WebFileInternal) _setCacheModel:] ()
#2  0x33dda388 in +[WebView(WebFileInternal) _preferencesChangedNotification:] ()
#3  0x30ec27a4 in __invoking___ ()
#4  0x30e3a43c in -[NSInvocation invoke] ()
#5  0x36493c3c in SendMessage ()
#6  0x36493c14 in HandleAPISource ()
#7  0x30e96a78 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ ()
#8  0x30e986a2 in __CFRunLoopDoSources0 ()
#9  0x30e994ea in __CFRunLoopRun ()
#10 0x30e29ec2 in CFRunLoopRunSpecific ()
#11 0x30e29dca in CFRunLoopRunInMode ()
#12 0x36492284 in RunWebThread ()
#13 0x35ba5310 in _pthread_start ()
#14 0x35ba6bbc in thread_start ()

ある種の好みの変更が投稿されていますか?Mac OS X SDKのみであるWebPreferences.hにcacheModelのものがあります:-(

したがって、理想的には、キャッシング ポリシーを設定する方法があればよいのですが、その方法がわかりません。キャッシュが発生しないようなキャッシュ モデルを選択する理由がわかりません。

iOS アプリのキャッシュ モデルを WebCacheModelPrimaryWebBrowser のようなものに設定する方法を知っている人はいますか?

これはNSURLCache Memory Size is zeroに似ていますが、詳細を提供することで答えが得られることを願っています...

4

1 に答える 1

0

SDURLCache github リンクを使用してみるか、コード内で役立つ情報を見つけることができるかもしれません。

于 2011-07-15T08:46:32.610 に答える