0

J'ai une application ipad, qui a des catégories (les contrôleurs de vue de table à l'intérieur de celle-ci) et des vues de détail qui a une vue web montre les informations de la ligne sur tableview.L'application basée sur ModalViewController se bloque après 30 présentations

J'utilise le code sur didSelectRowAtIndexPath fonction des vues de table de catégorie comme:

DetayViewController *dvc = [[DetayViewController alloc] init]; 
Blog *b = (Blog *)[self.blogArray objectAtIndex:indexPath.row]; 
dvc.cagirilanBlog = b; 
[self presentModalViewController:dvc animated:YES]; 

Cela fonctionne très bien. Mais lorsque vous utilisez l'application, si vous cliquez sur la ligne dans la vue de table et ouvrez une page de détail et la fermez environ 30 fois, l'application se bloque et quitte.

Les avertissements que je reçois quand les accidents app est comme:

**Received memory warning. Level=1** 

**Received memory warning. Level=2** 

**Program received signal: “0”. 
Data Formatters temporarily unavailable, will re-try after a 'continue'. (Unknown error loading shared library "/Developer/usr/lib/libXcodeDebuggerSupport.dylib")** 

Quand je dissmiss le contrôleur modal de la vue, je publie tous les objets que j'ai utilisé sur la vue de détail. Mais le problème que je ne peux pas résoudre est pourquoi est-ce qu'il plantage? est-ce un bug? Est-ce que je ne peux pas utiliser presentModalViewController plus de 30 fois?

S'il vous plaît aidez-moi.

Merci.

Répondre

3

Vous devez libérer les ressources que vous avez utilisées (chaque allocation de mémoire doit être libérée).

Dans votre cas:

[dvc release] 

(Dans le cas contraire, tous les objets que vous avez publié dans la méthode dealloc ne seront pas appelés!)

Vous pouvez également utiliser l'outil de performance de fuite fourni avec Xcode. (Très utile pour détecter les fuites de mémoire)

Vous devriez lire ce document: http://developer.apple.com/library/ios/#documentation/cocoa/Conceptual/MemoryMgmt/MemoryMgmt.html

+0

Pour ce faire: DetayViewController * DVC = [[[DetayViewController alloc] init] autorelease]; –

+0

Cher William, quand j'utilise ce code: [version dvc]; lors de la création de DetayViewController, lorsque je rejette le modalviewcontroller, l'application se bloque à cause de la méthode -dealloc. Par la suite il dit: [DetayViewController urlReq]: message envoyé à désaffecté instance 0x62c39d0 après cela, j'ai essayé de nettoyer ma méthode dealloc et ne pas libérer les objets manuellement, mais même dans ce cas, l'application se bloque de façon inattendue et donne cette erreur: - [DetayViewController respondsToSelector:]: message envoyé à l'instance désaffectée 0x62ca070 et je ne comprends pas.Je n'utilise pas une méthode comme "respondsToSelector" :( –

+0

Et si j'utilise autorelease, les mêmes erreurs –

Questions connexes