Junior — Middle
Como está organizada a estrutura de memória para armazenar dados no programa?
sobes.tech IA
Resposta da IA
Em iOS, a estrutura de memória para armazenamento de dados num programa geralmente é organizada da seguinte forma:
- Stack (Pilha): armazena variáveis locais e chamadas de funções. Alocação e libertação de memória rápidas.
- Heap (Montão): alocação dinâmica de memória para objetos e estruturas que vivem além da chamada de função.
- Segmento de Dados: para variáveis estáticas e globais.
- Segmento de Código: para o código de máquina do programa.
Por exemplo, quando cria um objeto de uma classe em Swift ou Objective-C, a memória para ele é alocada no heap, e a referência ao objeto é guardada na stack. A gestão automática de memória no iOS é feita através do ARC (Contador de Referência Automático), que rastreia o número de referências aos objetos e liberta a memória quando ela já não é necessária.
Exemplo:
class Person {
var name: String
init(name: String) {
self.name = name
}
}
func createPerson() {
let person = Person(name: "Ivan") // objeto no heap, referência na stack
print(person.name)
} // após sair da função, a referência é removida, o ARC liberta o objeto se não houver outras referências