J'ai code comme ceci:Cast "vide const *" à "const char *"
NSData *data = [NSData dataWithContentsOfURL:objURL];
const void *buffer = [data bytes];
[self _loadData:buffer];
[data release];
la fonction "_loadData" prend un argument comme:
- (void)_loadData:(const char *)data;
Comment convertir " const void "à un" const char "sur Objective-C?
La [libération de données]; ligne est inutile. Dans les environnements non-garbage-collect votre application va probablement planter et cela montre que vous ne comprenez pas complètement la gestion de la mémoire Cocoa. Vous ne publiez que si vous avez explicitement appelé alloc, copy ou mutableCopy (peut-être d'autres auxquels je ne peux pas penser maintenant). L'objet renvoyé à partir de [NSData dataWithContentsOfURL:] est automatiquement libéré ou récupéré. – dreamlax
Même sur l'iPhone où il n'y a pas de garbage collection? –
Dans un environnement non collecté, l'objet est ajouté à un pool d'autorelease et sera probablement désalloué dans la boucle d'événement suivante ou lorsque le pool lui-même est désalloué. Dans tous les cas, vous ne «possédez» pas l'objet retourné, donc ce n'est pas à vous de le faire, si vous voyez ce que je veux dire. Vous ne possédez que des objets que vous attribuez explicitement, soit + alloc, -copy, ou -mutableCopy (et peut-être d'autres). – dreamlax