Quando l'applicazione passa allo stato di esecuzione in background, la quantità di memoria utilizzata è buona. Nel video di Apple si dice che la memoria sporca dovrebbe essere ridotta il più possibile.iOS4: commutazione rapida dei contesti
Ma nella mia app, sto usando il controller di navigazione per spingere e far apparire le viste. Dopo essere passati da circa 20 pagine diverse, gli utilizzi della memoria sporca raggiungono i 30 MB circa.
Anche su "dismissModalViewControllerAnimated" e "popViewControllerAnimated", dealloc non viene chiamato.
ho due dubbi:
- Con la quantità di memoria sporco è accettabile per andare a vivere?
- Qual è l'alternativa del controller di navigazione per supportare il pulsante Indietro?
Grazie in anticipo.
1. Non 30 MB. I dispositivi iOS meno recenti hanno solo RAM da 128 MB, quindi la tua app lo riempirebbe per circa il 23% ... 2. Se hai una perdita di 30 MB, probabilmente non stai pubblicando qualcosa, da qualche parte, non è "UINavigationController'" colpa di s. –
Hi Douwe, Grazie per la risposta. Perché dubito su UINavigationController perché continuo a spingere i controller della vista al suo interno.E quando apro i controlli della vista dal controller di navigazione, il metodo dealloc non viene chiamato dove sono rilasciate le variabili di istanza definite. E la memoria non viene cancellata da tutte queste variabili di istanza. Sto facendo qualcosa di sbagliato? Devo cancellare le variabili di istanza da qualche altra parte e non in dealloc? – Sunil
Hai altri riferimenti ai tuoi controller di visualizzazione, altrove nella tua app? Se li stai inserendo, ma hai ancora un riferimento da qualche altra parte al controller, non otterrà GCed – blueberryfields