2011-02-03 18 views
6

Estoy usando UIWebView para abrir archivos locales de formatos Office (ppt, xls, doc) e iWork (números, páginas, clave), todos menos de 5 MB en tamaño. Para cargarlos, hago simplemente:Control de picos de memoria al cargar archivos locales (Office e iWork) en UIWebView

NSURL *url = [NSURL fileURLWithPath:filepath];  
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; 
[myWebView loadRequest:requestObj]; 

Al cargar algunos de estos archivos en vista web (especialmente ppts con gran cantidad de imágenes en ellos), el uso de memoria se dispara hasta casi 35 MB causando mi aplicación se bloquee . He buscado en varios foros de iOS pero realmente no he encontrado una solución. ¿Usa loadData: MIMEType: textEncodingName: baseURL: ayuda a mantener la huella de memoria o existen otros trucos para usar UIWebView?

+0

¿Está viendo los archivos dentro de la vista web o está utilizando la vista web para descargar los archivos para que la aplicación correcta abra el archivo? –

+0

Solo estaba cargando el archivo con el código que se muestra arriba. De todos modos, esto fue antes de iOS5, tendrá que verificar si han realizado alguna mejora en el rendimiento de UIWebView. Por cierto, ya no estoy trabajando en este proyecto. – Sushant

+0

@Sushant 35MB siempre será un problema al menos durante los próximos 3 años. – SayeedHussain

Respuesta

0

Ese no debería ser el caso de un bloqueo. Una aplicación que usa 35MB de RAM no es demasiado. Te sugiero que corras el analizador estático en busca de fugas. Además, ¿qué tipo de choque obtienes? ¿Ves advertencias de memoria justo antes de que se bloquee?

+0

Una aplicación que usa 35MB de RAM no es demasiado. ¿Estás bromeando? El sistema operativo comienza a emitir advertencias de memoria a 14-15MB. Tenga en cuenta las docenas de otras aplicaciones que se ejecutan en segundo plano y la memoria RAM dedicada al sistema operativo y comprenderá por qué 14-15 MB es el umbral de seguridad de la memoria. – SayeedHussain

Cuestiones relacionadas