incompatibilité GNUStep NSAutoreleasePool
-
18-09-2019 - |
Question
Selon un autre poste Stack Overflow le message drain
est un apple n'appeler:
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSLog (@"Hello");
[pool drain];
return 0;
Est-il sûr de remplacer drain
avec release
? Je suis en train de porter une application Objective-C pour fonctionner sur Linux (Ubuntu pour le moment). Dois-je abandonner avant même que j'ai commencé? (Je suis déjà avoir des problèmes en essayant d'obtenir le travail du NSURLConnection
)
La solution
De la documentation d'Apple de drain
:
[...] cette méthode se comporte comme la libération. [...]
drainant donc une piscine autorelease signifie désaffecter il inévitablement. À mon avis, Apple devrait désapprouver drain
car il ne crée que confusion.
Considérations particulières: Dans un environnement ramasse-miettes,
release
est un non-op, donc à moins que vous ne voulez pas pour donner le collecteur un soupçon est important d'utiliserdrain
dans tout code qui peut être compilé pour une environnement ramasse-miettes.