Ho una conoscenza di base di cosa sono "stack" e "heap". Si utilizza una pila per memorizzare gli elementi in memoria che dovrebbero essere letti e / o rimossi in un modo ultimo letto / rimosso. Per rubare un altro esempio dal sito Web di qualcun altro, lo si utilizza per eseguire operazioni aritmetiche che coinvolgono PEMDAS. Si utilizza anche una pila per memorizzare gli indirizzi di ritorno per le funzioni. Come un heap, la CPU utilizza un puntatore per trovare l'elemento da leggere e / o rimuovere.
Usi un heap quando non hai bisogno del computer per memorizzare gli oggetti in ordine sequenziale in memoria.
La mia domanda è, qual è il problema con il puntatore * in Objective-C? Le variabili locali in un metodo stanno per essere deallocate quando il metodo è fatto comunque, quindi perché non usare lo stack invece?
Sto per uscire su un arto qui e dire che la risposta breve è che, poiché gli stack hanno una memoria limitata, Objective-C vuole mantenere l'utilizzo dello stack al minimo.