Pergunta

De acordo com Outra postagem de transbordamento de pilha a drain A mensagem é uma chamada somente para a Apple:

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSLog (@"Hello");
[pool drain];
return 0;

É seguro substituir drain com release? Estou tentando portar um aplicativo Objective-C para ser executado no Linux (Ubuntu no momento). Devo desistir antes mesmo de começar? (Já estou tendo problemas tentando obter NSURLConnection trabalhando)

Foi útil?

Solução

Da documentação da Apple de drain:

...] Este método se comporta o mesmo que a liberação. [...

Portanto, drenar um pool de autorlease significa negociar inevitavelmente. Na minha opinião, a Apple deve depreciar drain já que só cria confusão.

Mas:

Considerações Especiais:
Em um ambiente coletado de lixo, releaseé um não-op, então, a menos que você não queira dar ao colecionador uma dica, é importante usar drain em qualquer código que possa ser compilado para um ambiente coletado por lixo.

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