J'ai un problème de fuite de mémoire, je sauve un tableau dans un fichier en utilisant:NSKeyedUnarchiver causant fuite de mémoire
[NSKeyedArchiver archiveRootObject:myArray toFile:MyFile];
les objets inclus dans le tableau les méthodes suivantes:
- (id)initWithCoder:(NSCoder *)coder
{
[super init];
parameter1 = [[coder decodeObject] retain];
parameter2 = [[coder decodeObject] retain];
parameter3 = [[coder decodeObject] retain];
return self;
}
- (void)encodeWithCoder:(NSCoder *)coder
{
[coder encodeObject:parameter1];
[coder encodeObject:parameter2];
[coder encodeObject:parameter3];
}
pour désarchiver les objets que je utilise:
myUnarchivedArray = [NSKeyedUnarchiver unarchiveObjectWithFile:myFile];
l'application se bloque soudainement parce que les mem disponibles ory ne suffit pas pour continuer.
Je suis incapable de libérer monUnarchivedArray et l'outil Intruments me dit que l'unarchiver provoque la fuite de mémoire.
Je ne l'ai pas trop effectue une recherche, je viens de trouver la cause de la fuite de mémoire, mais je sautillait de trouver quelqu'un qui a été passé le même problème et a une astuce pour le résoudre. :)
Je vous remercie!! Anna
Quelle est la taille de ces objets? – mahboudz
32 octets aprox, mais la quantité d'entre eux à l'intérieur du tableau est variable. –
Les objets que vous encodez/décodent sont-ils des types personnalisés? Si c'est le cas, passez en revue leurs méthodes d'encodage/décodage. – nall