Une question de Leaks

à”yé, à¶yé, brave gens,


 


Bon, sérieusement, je viens de passer la moulinette sur une App avec Instruments pour voir les allocations mémoires et les leaks. Une petite photo : https://lut.im/VO2RDKNu/wcUiQsiX


 


 


 


Mon App est plutôt basique, une UITableViewController avec une UIViewController qui affiche les détails de chaque objet de cette même liste. Quand je click, et que je reviens sur la liste, j'ai la première grande barre rouge qui s'affiche. La deuxième a l'air un peu aléatoire et est largement plus petite.


 


Quand je clic sur cette barre pour avoir des détails, j'ai une liste de __NSCFString.


 


Donc, pour l'apparition de la vue de détails, j'ai ce code :



- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
ViewControllerDetail *detail = [[ViewControllerDetail alloc] initWithAnItem:[self.items objectAtIndex:[indexPath row]]];

[[self navigationController] pushViewController:detail animated:YES];
}

Pensez-vous que ça viens de là  ?


Avez-vous des idées et/ou des pistes ?


 


Merci pour votre aide.


 


Réponses

  • Question bête... tu utilises bien ARC ?


  • CéroceCéroce Membre, Modérateur
    Les fuites proviennent-elles de ton appli et pas des API d'Apple?
    As-tu lancé une analyse statique de ton code avant toute chose ?
  • A oui, j'utilise bien ARC. Je n'ai rien fais pour le désactivé en tout cas.


     



     


     


    Les fuites proviennent-elles de ton appli et pas des API d'Apple?
    As-tu lancé une analyse statique de ton code avant toute chose ?

     


    Est-ce que tu peux me donner plus de détails sur ces petites choses svp ?


     


    Comment faire la différence entre mon App et API ? Comment faire une analyse Statique ?


     


    Merci.


  • Céroce, je viens de faire une analyse statique du code et je n'ai aucune erreur (Product -> Analyse).


  • La liste de NSString leaking, tu es bien sûr qu'elle vient de ces lignes de code ?


  • septembre 2014 modifié #7

    Je ne sais pas d'où cela peut venir. Est-ce que tu peux me dire comment puis-je le savoir ? Comment le tracer ou trouver la source ?


  • Merci pour ce lien. Donc il s'agit de AFNetworking et plus précisément de cette méthode :



    - (void)setCompletionBlockWithSuccess:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
    failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure

    Donc, comme il ne s'agit pas de mon code directement, comment procédez-vous pour régler ce genre de soucis ?


     


    Merci.


  • Montre ton code quand tu utilises ça.


     


    Il se peut que ce soit toi qui génères le leak.


     


    Sinon, il faut regarder sur le GitHub si ce problème n'a pas déjà  été remonté, etc le signaler.


  • Joanna CarterJoanna Carter Membre, Modérateur


    Merci pour ce lien. Donc il s'agit de AFNetworking et plus précisément de cette méthode :



    - (void)setCompletionBlockWithSuccess:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
    failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure

    Donc, comme il ne s'agit pas de mon code directement, comment procédez-vous pour régler ce genre de soucis ?


     


    Merci.




     


    Est-ce que tu as utilisé self dans les blocks ?

Connectez-vous ou Inscrivez-vous pour répondre.