2010-07-24 5 views
0

У меня проблема с моим кодом. Я обедаю нить, и эта нить имеет NSTimer. Я должен помнить переменное местоположение, но когда я повторяю метод, я повторно инициализую их, и я теряю прогресс. Вы можете мне помочь? БлагодаряПроблема с потоком и инициализацией

Мой код: (. Это не очень мой код, но это та же ситуация, я хочу, помню номер I, но при перезагрузке методов программа переинициализировать I)

-(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]; 

} 

ответ

1

я определяется как локальный callDectectionMove, и в то же время, когда вы вызываете callDectectionMove, новый i будет инициализирован.

при каждом вызове, который вы хотите использовать для одного и того же объекта i, тогда вы используете статический int i.

+0

Можете ли вы опубликовать простой код, пожалуйста? – zp26

+0

теперь у вас есть "int i = 0;" напишите его как «static int i = 0;» -> в этом случае только в первый раз, когда i инициализируется 0. –