Sobes.tech
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