Desenvolvimento iPhone - Solte um objeto autoreleased
-
06-07-2019 - |
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 !!
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.