2012-02-01 3 views
0

Est-il possible d'appeler une fonction dans iOS pendant un certain intervalle de temps?Appel d'une fonction toutes les 5 secondes dans iOS

{ 
    NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:5.0 target:self selector:@selector(serverConnect) userInfo:nil repeats:YES]; 
    } 

Existe-t-il une alternative à ce qui précède?

Le serveur fonction de connexion est le suivant:

-(void)serverConnect{ 

NSMutableURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@MYURL] cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:15.0]; 

NSURLConnection *connection= [[NSURLConnection alloc] initWithRequest:request delegate:self]; 

if(connection){ 

    NSLog(@"connected"); 
}else{ 
    // 

} 

Il renvoie une erreur: - [TUTViewController ServerConnect]: sélecteur non reconnu envoyé à 0x907ef20 exemple

+0

C'est à peu près la façon de le faire. Globaliser le 'NSTimer' et vous pouvez l'invalider ailleurs si vous en avez besoin. – MobileOverlord

+0

C'est comme ça que vous faites une minuterie à répétition, mais elle fonctionnera tous les 100 secondes. Est-ce ce que tu veux vraiment? – jsd

+0

J'ai changé l'intervalle de temps et ajouté la fonction qui est appelée. –

Répondre

2

L'erreur est indiquant la question. Il montre 'serverConnect:' - le signe deux-points à la fin signifie qu'il y a un paramètre. Votre serverConnect ne prend aucun paramètre ... d'où le problème. Il doit ressembler à:

- (void)serverConnect:(NSTimer*)theTimer { 
    ... 
} 
+0

mais je n'utilise pas cette minuterie, mais appelez simplement la fonction. Mon idée était de me connecter au serveur toutes les 5 secondes. Rien beaucoup. Cela s'applique-t-il toujours? –

+0

La fonction doit prendre le paramètre, que vous l'utilisiez ou non. Les documents NSTimer peuvent le confirmer. –

Questions connexes