Как я могу сделать BOOL иметь значение на короткое время, затем изменить в Objective-C - PullRequest
1 голос
/ 15 ноября 2010

У меня есть Bool, который я использую в операторе if. Переменная начинается как NO, затем я вводю оператор if, который выполняется, если значение bool равно NO. Затем я изменяю значение на YES в конце оператора if, чтобы он больше не выполнялся, стандартные вещи.

Что я хочу сделать, так это как-то изменить эту переменную YES в конце, но через пять секунд вернуть ее обратно в NO. Как это можно сделать?

Ответы [ 2 ]

2 голосов
/ 15 ноября 2010

Можно использовать NSTimer:

[NSTimer scheduledTimerWithTimeInterval:5.0 
                                 target:self 
                               selector:@selector(resetSomeBoolean:) 
                               userInfo:nil 
                                repeats:NO];


- (void) resetSomeBoolean:(NSTimer *) timer {
   self.someBoolean = NO;
}

Также убедитесь, что это свойство (someBoolean) равно atomic.

0 голосов
/ 15 ноября 2010

Возможно установить что-то вроде:

... your code ...
myBool = YES; // set some senteniel.

[NSTimer scheduledTimerWithTimeInterval:5.0 
                                 target:self 
                               selector:@selector(resetMyBool:) 
                               userInfo:nil 
                                repeats:NO];
return;
}

и добавьте что-то вроде

- (void) resetMyBool:(NSTimer*)meTimer {
      myBool = NO;
}

в ваш класс. Но вы уверены, что вам нужно это сделать - звучит легко, чтобы получить состояние гонки.

Спасибо

Dw.

...