La récupération de place est-elle prise en charge pour les applications iPhone?
-
03-07-2019 - |
Question
L'iPhone prend-il en charge la récupération de place? Si tel est le cas, quels sont les autres moyens d'effectuer les opérations effectuées à l'aide de la combinaison + alloc
et -init
:
NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithData:xmlData];
UIImage *originalImage = [[UIImage alloc] initWithData:data];
detailViewController = [[[DetailViewController alloc] initWithNibName:@"DetailView bundle:[NSBundle mainBundle]] autorelease];
... et d'autres commandes. Merci d’avance pour toute aide ou directive que vous pouvez fournir.
La solution
Non. Le ramassage des ordures représente une surcharge trop importante pour la durée de vie de la batterie, etc. de l'appareil.
Vous devez toujours programmer avec un motif alloc / release
à l'esprit.
NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithData:xmlData];
...
[xmlParser release];
ou (ne convient pas à toutes les situations)
NSXMLParser *xmlParser [[[NSXMLParser alloc] initWithData:xmlData] autorelease];
J'espère que ça aide!
Autres conseils
Non, la récupération de place n'est pas prise en charge sur l'iPhone pour le moment. Vous devez utiliser alloc
/ release
/ autorelease
.
Notez que l'absence de garbage collection signifie que les références faibles ne sont pas non plus prises en charge.
Mono touch a un ramassage des ordures et fonctionne sur le système d'exploitation iPhone.
Dans toute la discussion, personne ne dit à propos du langage Java. En Java, la collection Garbage est intégrée au langage, de sorte qu'elle est implicitement disponible dans Android, J2ME et Blackberry :), où, comme dans Objective-C, elle est facultative. donc, sur iPhone, le CPG n'est pas disponible.