2010-08-10 3 views
0

Paix, mon eXercice consiste à faire en sorte que l'application connecte, envoie et reçoive des données au serveur web distant et ce, toutes les 10 secondes afin que l'idée fonctionne avec NSTimer et l'ajoute dans un runLoop, mais le la connexion est établie seulement une fois et puis (dans les 10 prochaines secondes) l'application se bloque. Voici mon code, MERCI d'avoir aidé.Crash avec NSTimer lors du traitement des connexions HTTP

#define HTTP_CONTACT_TIMEOUT 10.0 
@implementation HTTPEXERCICEAppDelegate 


@synthesize window; 
@synthesize HttpConnTimer; 

#pragma mark - 
#pragma mark Application lifecycle 

- (BOOL)application:(UIApplication *)applicationdidFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 


self->HttpConnTimer = 
[NSTimer scheduledTimerWithTimeInterval:HTTP_CONTACT_TIMEOUT target:self selector:@selector(Contact:) userInfo:NULL repeats:YES]; 

[[NSRunLoop mainRunLoop] addTimer:self->HttpConnTimer forMode:NSRunLoopCommonModes]; 

return YES; 

} 


-(void) Contact:(NSTimer*)ttimer { 

NSAutoreleasePool *Pool = [[NSAutoreleasePool alloc] init]; 
HTTP_Comm *HTTPClient = [[HTTP_Comm alloc] init]; 
[HTTPClient CommunicateWith:@"http://someURL"]; 
[HTTPClient release]; 
[Pool release]; 
} 

Répondre

0

endroit très suspect est

HTTP_Comm *HTTPClient = [[HTTP_Comm alloc] init]; 
[HTTPClient CommunicateWith:@"http://someURL"]; 
[HTTPClient release]; 

êtes-vous sûr que vous avez retenu HTTPClient dans CommunicateWith :? Soit il doit être conservé ou ne devrait pas être utilisé après cela.

Aussi, ne pas utiliser ensemble:

[NSTimer scheduledTimerWithTimeInterval:HTTP_CONTACT_TIMEOUT target:self selector:@selector(Contact:) userInfo:NULL repeats:YES]; 

[[NSRunLoop mainRunLoop] addTimer:self->HttpConnTimer forMode:NSRunLoopCommonModes]; 

parce scheduledTimerWithTimeInterval ... timer déjà ajouté à runloop. Utilisez uniquement scheduledTimerWithTimeInterval ... ou timerWithTimeInterval ... avec addTimer ...

+0

Tout le monde peut suggérer et donner des conseils ... c'est vraiment supposé fonctionner .. – Archer

Questions connexes