Pergunta

Eu ainda sou novo para Cacau e não sei muito sobre o gerenciamento de memória.Eu li até de produtos da Apple na documentação, mas eu ainda estou confuso.A minha pergunta é se eu definir o valor de uma variável em um - (void)dowhatever quando dowhatever termina, o conteúdo da variável a ser apagada?Se assim é, não há um método (sem escrever para um arquivo) que eu possa usar para reter o conteúdo da variável?

Obrigado por qualquer ajuda

Foi útil?

Solução

A minha pergunta é se eu definir o valor de uma variável em um - (void)dowhatever quando o vazio termina, ...

void é um tipo.Ele não tem começo e não tem fim.

Especificamente, é o tipo de retorno do dowhatever o método.Se dowhatever retornou um valor, o tipo do valor de retorno seria o caso de você ter void;seria dizer, por exemplo, - (NSUInteger) doWhatever.Ter void não significa que o método não retorna um valor.

Veja também O Objective-C 2.0 Linguagem De Programação documento.

... será que o conteúdo da variável a ser apagada?

Se é uma variável local e, em seguida, a variável deixa de existir quando o método retorna.

Uma variável de instância existe enquanto a instância (objeto) que a variável é uma parte de sua existência, isto é, até que a instância é desalocada.

Variáveis de instância são também abordados no objective-C documentação.

Se assim é, não há um método (sem escrever para um arquivo) que eu possa usar para reter o conteúdo da variável?

Se você simplesmente precisa devolver o objeto para o seu interlocutor, retê-la e autorelease-lo.Ver o O Gerenciamento de memória do Guia de Programação para Cacau para obter mais informações.

Se isso não é o que você está fazendo, então a questão torna-se por você precisa o objeto para se manter vivo.

Pensar em termos de objetos:Um objeto pode possuir determinados outros objetos, e tem uma variável de instância para cada objeto possui*.Contanto que você tenha o seu posses de reta e a apoiá-los no código, objetos vidas, só trabalho.

Se Um objeto precisa de outro objeto B, então A deve possuir B.Esta propriedade não é exclusiva;ele pode co-próprio B.Mas ele precisa pelo menos co-B;B permanecerá viva contanto que tem pelo menos um proprietário.

Que também abordados no Guia de Gerenciamento de Memória.Para outros exemplos de relações entre os objetos, você deve percorrer o Cacau Fundamentos Guia, particularmente o capítulo sobre Cacau do design patterns, e você pode querer olhar através de código de exemplo para ver os padrões demonstrada na prática.

*Ele também pode ter variáveis de instância de objetos que ele não possui, como delegados.Você pode ter uma variável de instância de um objeto que não é seu, mas se você não possui-lo, você deve ter uma variável de instância para ele.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top