Vraag : Het Lek van het geheugen in het Modale Controlemechanisme van de Mening Poping

In controlemechanisme genoemde controller1, duw ik een modale mening controller
1:
2:
3:
4:
5:
6:
7:
8:
 AddConversationViewController *addController = [[AddConversationViewController alloc] 
	 initWithNibName: @ bundel " AddConversationViewController ": nul];
	 //addController.delegate = zelf;	 
	 UINavigationController *navigationController = [[UINavigationController alloc]
	 initWithRootViewController: addController];
	 [zelfpresentModalViewController: navigationController geanimeerd: JA];
	 [addController versie];
	 [navigationController versie];


and toen in dat addcontroller, heb ik verscheidene voorwerp toegewezen.  maar in de deallocmethode, wanneer ik die voorwerpen vrijgeef, zal ik waarschuwing krijgen BAD_ACCESS wanneer ik het modale meningscontrolemechanisme verwerp. Als ik die voorwerpen niet vrijgeef die ik heb toegewezen, het geeft niet de voorwerpen BAD_ACCESS warning.
those die ik toegewezen=heb= vóór niet word bevrijd noch retained.

Does om het even wie het weet hoe te om dit geheugenlek te bevestigen?

Antwoord : Het Lek van het geheugen in het Modale Controlemechanisme van de Mening Poping

De fout BAD_ACCESS betekent dat u een voorwerp vrijgeeft dat een andere functie momenteel gebruikt.  Stel uw code als dit in werking:

       AddConversationViewController *addController = [[AddConversationViewController alloc]
       initWithNibName: @ bundel " AddConversationViewController ": nul];
       //addController.delegate = zelf;       
       UINavigationController *navigationController = [[UINavigationController alloc]
       initWithRootViewController: addController];
       [zelfpresentModalViewController: navigationController geanimeerd: JA];
       [addController versie];
                      NSLog (@ " na vrijgegeven addController ");
       [navigationController versie];
                      NSLog (@ " na vrijgegeven navigationController ");

Dit voegt sommige consoleberichten toe alvorens u elk van uw voorwerpen vrijgeeft.  Als u na addController ziet in uw console wordt vrijgegeven, weet u dat [addController versie die]; veroorzaakt uw neerstorting niet.  Als u allebei van die consoleberichten ziet, weet u dat geen van die verklaringen een neerstorting veroorzaakt, maar het waarschijnlijkst, veroorzaakt één van die 2 versieverklaringen de neerstorting.  Ik denk dat [navigationController versie]; de verklaring veroorzaakt uw neerstorting omdat u dat nodig hebt om meningen via uw navigationController te bewegen.  Als u die lijn verwijdert, zou u niet moeten verpletteren.  Het verwijderen zou addController geen neerstorting moeten veroorzaken omdat u enkel dat maakte om de mening te bewegen en het doet iets anders niet.  Als u om het even welke verdere vragen hebt, gelieve te voelen vrij om me over hen te vragen.
Andere oplossingen  
 
programming4us programming4us