Pergunta

O que acontece se eu liberar um objeto autoreleased? Seu um autoreleased UIButton eu quero liberar e a única maneira de criar um UIButton é usar o método buttonWithType conveniências do mundo :. Será que vai ser liberado da memória como um objeto normal? Ou devo apenas deixar o autoreleasepool cuidar dele? Eu não teria feito isso autoreleased em primeiro lugar, se pudesse.

Graças !!

Foi útil?

Solução

Você deve apenas deixar a piscina disparo automático cuidar dela. Depois de adicionar o botão para uma vista principal, essa visão irá retê-lo, eo identificador autoreleased vai ter cuidado na piscina disparo automático.

A maneira mais fácil para pensar sobre isso é em termos de propriedade, você não "próprio" a referência que você tem através de um método de conveniência, assim você não precisa se preocupar liberá-lo a menos que você guarde-o bem.

Outras dicas

Você só deve liberar um objeto que você possui. + ButtonWithType: não retorna um objeto de propriedade, para que você não deve liberá-lo

.

Analise a Cacau Objeto regras de propriedade .

Por que você está tentando evitar um objeto autoreleased aqui? Provavelmente, você está criando o botão porque você está usando o botão e inseri-lo em uma hierarquia de vista, então não há nenhuma razão real para acelerar a drenagem da piscina disparo automático que contém o botão.

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