2010-07-24 6 views
0

J'ai un problème avec mon code. Je déjeune le fil et ce fil a un NSTimer. Je dois me souvenir d'un emplacement variabile mais quand je répète la méthode, je les réinitialise et je perds la progression. Pouvez-vous m'aider? MerciProblème avec le thread et l'initialisation

Mon code: (. Ce n'est pas mon code, mais très est la même situation je veux remeber le nombre de i mais quand redémarrez les méthodes du programme i réinitialisent)

-(void)callDectectionMove:(Movement*)tempMovement{ 


    int i = 0; 

    i++; 

    if(i == 5) 
     return; 

    [NSTimer scheduledTimerWithTimeInterval:timeToCatch target:self selector:@selector(detectMovement) userInfo:nil repeats:NO];  
} 




-(int)detectPositionMovement:(float)cordX:(float)cordY:(float)cordZ:(float)sensibility{ 


    [NSThread detachNewThreadSelector:@selector(callDectectionMove) toTarget:self withObject:tempMovement]; 

} 

Répondre

1

i est défini comme callDectectionMove local et très le temps que vous appelez callDectectionMove new sera initialisé.

à chaque appel que vous voulez utiliser le même objet, alors vous devez utiliser static int i.

+0

pouvez-vous poster un code simple s'il vous plaît? – zp26

+0

maintenant vous avez "int i = 0;" L'écrire comme "statique int i = 0;" -> dans ce cas seulement la première fois que le i est initialisé 0. –