Я пытаюсь проверить переменную, объявленную как @property (assign, nonatomic) NSTimeInterval rate;
, которая постоянно изменяется как счетчик времени.Другими словами, значение переменной непрерывно меняется по прошествии времени, я знаю, что могу использовать KVO с функцией - (void)observeValueForKeyPath:...}
, чтобы наблюдать, когда переменная изменила свое значение, но мне также нужно знать, когда переменная перестает изменяться и становитсяпостоянная.Я попробовал один способ, который просто проверяет значение переменной после очень небольшого промежутка времени (например, 0,00001 секунды), используя NSTimer
здесь
- (void) checkPlaying:(NSTimer*)t {
NSLog(@"%f %f", self.keepRate, (double)self.rate);
return self.keepRate != (double)self.rate;
}
- (void) isPlaying{
self.keepRate = (double)self.rate;
[NSTimer scheduledTimerWithTimeInterval:0.00001
target:self
selector:@selector(checkPlaying:)
userInfo:nil
repeats:NO];
}
, и сравнил его с предыдущим сохраненным значением, но это также делаетне работа;значения self.keepRate
и (double)self.rate;
остаются теми же в этом NSLog.Я думал, что это вызовет checkPlaying
после 0,00001 секунды, но я мог бы что-то неправильно понять.Может ли кто-нибудь помочь?Или было бы хорошо, если бы кто-нибудь просто предложил проверить, когда переменная перестает изменяться.Спасибо
Редактировать: На самом деле, переменная начала менять свое значение, когда пользователь нажимал кнопку, и перестала изменять значение после того, как пользователь нажал ту же кнопку.Вот почему я думаю, что, может быть, мне понадобится 0,0001 секунды, чтобы проверить, изменилось ли значение переменной или нет.Я знал, что могу просто использовать кнопку, чтобы проверить, меняется ли значение или нет, но есть много проблем и вещей, которые нужно решить, если я это сделаю, и именно поэтому я задал эти вопросы вместо этого.