Récemment, j'ai été la réparation de quelqu'un de code. Il y avait une grande classe qui ne serait pas dealloc. Vous auriez à le frapper avec 5 ou 6 versions de l'obtenir pour dealloc.
J'ai soigneusement regardé à travers la grande classe et a finalement trouvé les différentes choses qui devaient être libérés.
Cela m'a fait penser: il y a vraiment moyen facile de "trouver" tous les conserve sur un objet .. suis-je le droit?
Alors, est-il un moyen simple de "trouver tous les conserve" sur un objet? Est-il un bouton dans XCode ou des Instruments que tout le monde connaît?
Que faites-vous lorsque vous ne trouvez pas un mystère conserver comme ça?
Ainsi, dans l'iOS de l'univers, si quelqu'un connaît le "Spectacle où tous les conserve venus de sur cet objet" bouton -- merci!
P. S. Remarque qu'il n'y a pas de fuite, et cette question est totalement non liés à des fuites. L'objet, simplement "parfaitement bien". ne pas libération.
Plus tard ..
Vraiment étonnantes solution par Fabio:
Fabio a fourni une étonnante solution à ce problème. En neuf mots, elle est ici:
-(id)retain
{
NSLog(@"%@", [NSThread callStackSymbols]);
return ([super retain]);
}
C'est incroyablement utile dans de nombreuses situations, et conduit à beaucoup d'autres choses utiles. Vous avez probablement m'a sauvé deux semaines-homme de travail par an pour toujours, Fabio. Merci!
BTW, si vous êtes juste à se familiariser avec ce et aux prises avec la sortie, j'ai vu que, généralement, il y aura beaucoup de morceaux avec "UINib instantiateWithOwner:". Il ressemble à ceux viendra d'abord, la forte morceaux qui vont suivre.