Pourquoi lorsque le code suivant (intentionnellement fuit) est exécuté avec l'outil Instrument-Leaks, cela indique-t-il une fuite pour NSObject, mais pas NSDate? Ils apparaissent tous les deux lorsqu'ils sont exécutés avec l'outil Analyser l'analyse statique comme je m'y attendais.Une fuite simple n'apparaît pas dans l'outil Instruments-Leak
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[]) {
NSObject* obj = [NSObject alloc];
obj = [NSObject alloc];
NSDate* date = [NSDate alloc];
date = [NSDate alloc];
sleep(10); // time to allow leaks to pick up sample
return 0;
}
Oui, j'ai déjà vécu la même chose avant. J'ai aussi essayé intentionnellement des fuites et Instruments ne les a pas détectés. Je suppose que les instruments ne vérifient pas aussi complètement que prévu. – Altealice
Je vous suggère de regarder dans les vidéos WWDC 2010. La session 311 a très bien couvert ce sujet. – JustSid
FYI - Avec les instruments, vous pouvez ajuster la fréquence d'interrogation pour les fuites et réduire le temps de 10 secondes. Je crois que le réglage est appelé «secondes entre les détections automatiques» et se trouve dans le panneau de gauche. –