Sviluppo iPhone – Limitazioni di memoria per l’applicazione iphone

Qualcuno può indicare nella giusta direzione qui. Voglio rispondere quando la mia applicazione riceve un avviso di memoria, (voglio sapere come rispondere a questa notifica). Inoltre, quanta memoria posso colbind alla mia applicazione?

Qualsiasi articolo o riferimento ai libri sarebbe fantastico. Grazie.

Se la tua app riceve un avviso di memoria (come nel metodo didReceiveMemoryWarning del tuo controller di didReceiveMemoryWarning ) devi rilasciare qualsiasi dato non critico. Qualsiasi cosa tu stia utilizzando, ad esempio, quella memorizzata nella cache o che può essere rigenerata, dovrebbe essere scaricata.

Ad esempio, se la tua app scricchiola alcuni numeri e memorizza il risultato in un grande array, se non stai utilizzando triggersmente quell’array, dovresti rilasciarlo. Quindi, rigeneralo quando ne hai bisogno di nuovo.

Un po ‘più di informazioni è qui: osservare gli avvisi di memoria insufficiente

Ho sentito informalmente che gli avvisi vengono emessi quando l’applicazione raggiunge circa 22 MB. (Ogni memoria allocata è inclusa – l’iPhone conserva tutto nella RAM fisica e non accede a nessun’altra memoria.) Dato che il telefono ha solo 128 MB di RAM totale, questo sembra plausibile.

Questo limite non include la memoria utilizzata dalle librerie di sistema condivise, come il runtime Objective-C. E anche se non ne sono completamente sicuro, non penso che l’uso della memoria di WebKit sia incluso per il componente UIWebView, poiché ritengo che WebKit sia sempre caricato (ma di nuovo, non sicuro al 100% su questo).

La cosa migliore da fare quando raggiungi questo limite è tutto ciò che puoi facilmente rigenerare o rileggere da file di input, come visualizzazioni, immagini e dati memorizzati nella cache.