Как установить модель кэширования (для NSURLCache и UIWebView) в iOS?

Мне интересно, является ли это ошибкой в ​​​​инфраструктуре 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 ()

Какие-то предпочтения меняются при публикации? Я вижу материал cacheModel в WebPreferences.h, который является только Mac OS X SDK :-(

Итак, в идеале у нас должен быть какой-то способ установить политику кэширования, но я не знаю, как это сделать. Я не понимаю, почему он выбирает модель кеша, так что кэширование не происходит.

Кто-нибудь знает, как установить модель кэширования для приложения iOS на что-то более похожее на WebCacheModelPrimaryWebBrowser?

Это похоже на Размер памяти NSURLCache равен нулю, но я надеюсь, что, предоставив больше Подробности, возможно, я получу ответ...


person Dad    schedule 15.07.2011    source источник


Ответы (1)


Вы можете попробовать использовать ссылку SDURLCache на github или найти в коде что-то, что поможет.

person Nick Bull    schedule 15.07.2011
comment
спасибо за ответ, но выше я отметил, что уже использую SDURLCache. - person Dad; 15.07.2011