Video: Tutorial - Liberare Spazio su iPhone-iPad-iPod Touch GRATIS! (2017) [ITA] 2024
Il modo più semplice per gestire la memoria per le app iOS è quello di lasciare che il runtime Objective-C si occupi di esso usando un sistema chiamato conteggio dei riferimenti automatico (ARC) - per favore usalo. (ARC è disponibile dal 2011 in Xcode 4. 2 o successive.)
Quando iOS è stato introdotto per la prima volta, è necessario gestire manualmente la memoria tenendo traccia del ciclo di vita degli oggetti nel programma. Lo hai fatto dicendo al sistema di runtime Objective-C quando conservare e quando rilasciare oggetti, utilizzando uno schema chiamato Apple manuale retain-release, che a sua volta utilizzava una tecnica nota come conteggio dei riferimenti.
Anche se la gestione manuale della memoria è certamente una seccatura, è spiegata qui perché la vedrai nei vecchi programmi iOS, quindi puoi anche essere preparato. Ecco cosa fai. Innanzitutto, creare una classe che eredita dalla classe radice NSObject nel framework Foundation. La classe eredita quindi tre metodi di gestione della memoria:
-
conserva
-
versione
-
autorelease
Questi tre metodi manipolano tutti un contatore di riferimento nell'oggetto che dice essenzialmente al sistema runtime quanti posti nel programma (o altri oggetti) vogliono mantenere un riferimento al oggetto.
Ecco come questo conteggio dei riferimenti è gestito da iOS:
-
Ogni volta che il retain viene richiamato su un oggetto target, il suo conteggio dei riferimenti viene aumentato di uno.
Quindi, se cinque oggetti chiamano retain sull'oggetto target, il suo conteggio di riferimento sarà cinque (incidentalmente, quando l'oggetto è allocato, init incrementa automaticamente il conteggio dei riferimenti).
-
Man mano che smettono di aver bisogno dell'oggetto target, i cinque oggetti chiameranno il rilascio sull'oggetto. Ogni volta che viene chiamata la release, il conteggio dei riferimenti dell'oggetto target viene decrementato (di uno).
-
Quando il conteggio dei riferimenti diventa zero (ovvero, quando l'ultimo oggetto chiama release), la memoria dell'oggetto viene liberata dal sistema.
Il terzo metodo - autorelease - viene chiamato quando un oggetto che hai creato deve essere passato a un thread e vuoi che il thread si occupi di liberare l'oggetto quando il thread è terminato.
Internamente, il sistema ARC utilizza lo stesso sistema di conteggio dei riferimenti utilizzato per il conteggio dei riferimenti manuale. Tuttavia, per usare ARC, inserisci il tuo codice in blocchi @autoreleasepool in questo modo:
@autoreleasepool {… Il tuo codice …}
Il compilatore inserisce nel codice le chiamate del metodo di gestione della memoria appropriate che qualsiasi cosa creata all'interno di questo blocco @autoreleasepool viene liberata quando il programma esce dal blocco.