2009-06-05 7 views
1

Mon application se bloque sur cette ligne [NSThread detachNewThreadSelector: @selector(getJSON:) toTarget:self withObject:nil];problème avec NSThreads

Voici comment le funciton getJSON ressemble: - (void)getJSON: (NSDate *)startTime endTime:(NSDate *)endTime;

Qu'est-ce le problème?

Répondre

1

Il semble que vous ne spécifiez pas correctement la méthode; Chaque argument fait partie du nom de la méthode:

[NSThread detachNewThreadSelector:@selector(getJSON:endTime:) 
         toTarget:self 
         withObject:nil]; 
+0

correct. THX – Mladen

2

Le sélecteur pour - (void)getJSON:(NSDate *)startTime endTime:(NSDate *)endTime est

@selector(getJSON:endTime:) 
6

Alors que les gars sont corrects, le sélecteur de méthode est mauvaise, votre solution ne sera pas utile parce que le sélecteur pour detachNewThreadSelector doit prendre un seul argument.

Le paramètre withObject sera transmis à votre méthode de thread en tant que paramètre unique.

Si votre méthode filetée souhaite recevoir une heure de début et de fin, puis la façon normale de faire serait avec un NSDictionary, quelque chose comme:

[NSThread detachNewThreadSelector:@selector(getJSON:) 
         toTarget:self 
         withObject:[NSDictionary dictionaryWithObjectsAndKeys: 
          startTime, @"startTime", 
          endTime, @"endTime", 
          nil]]; 

Ensuite, la méthode de fil serait

- (void) getJSON: (NSDictionary*) parameters 
{ 
    NSDate* startTime = [parameters objectForKey:@"startTime"]; 
    NSDate* endTime = [parameters objectForKey:@"endTime"]; 
    ... 
}