2011-07-15 5 views
1

j'ai créé une méthode comme ci-dessous un:problème des fuites de mémoire dans l'application iphone

+ (JSONManager *)GetInstance 
{ 
    if (!instance) 
    { 
     instance = [[JSONManager alloc] init]; 
    } 
    return instance; 
} 

et je dois utiliser le même méthode point de vue différent ... si je libère celui-ci pour la première vue, il fonctionne bien et si vous essayez de naviguer vers la deuxième vue, mon application plante.

quelqu'un peut-il s'il vous plaît laissez-moi savoir où est-ce que je dois libérer cet objet

Merci à l'avance

+0

essayer de le relâcher dans l'autre vue où u accédez à ce – booleanBoy

+0

http://meta.stackexchange.com/q/5234/150789 –

Répondre

0

Cela semble être un singleton. Vous ne devriez pas le relâcher dans la première vue. Vous voudrez utiliser la même instance tout au long de la durée de vie de l'application. Si ce n'est pas le cas, vous devez fournir le mécanisme permettant de définir la variable instance sur nil car elle pointe vers un objet désalloué une fois que vous l'avez libéré. Mais je pense que ce n'est pas le cas.

0

Le code ressemble à un singleton. Le but de Singleton est d'avoir une seule instance d'une ressource disponible dans toute l'application. Donc, vous ne devriez pas libérer l'instance, une fois que vous en avez fini avec la première vue, puisque vous voulez l'utiliser dans une autre vue.

Si vous êtes inquiet au sujet de la publication de ce cas un regard sur le lien suivant pour une classe singleton de modèle pour une application iOS:

http://www.galloway.me.uk/tutorials/singleton-classes/

+0

ya c'est le singleton ... donc il n'y a aucun moyen de le libérer mais je reçois une fuite de mémoire ... que dois-je faire pour éviter les fuites? – vidya

+0

J'ai ajouté un lien pour que vous puissiez l'utiliser comme modèle pour singleton dans les applications iOS. –

Questions connexes