GNUSTEP NSAUTORORELEASEPOOL INCOMPATIBILIDADE
-
18-09-2019 - |
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)
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 usardrain
em qualquer código que possa ser compilado para um ambiente coletado por lixo.