Цель c постоянно проверять значения переменных - PullRequest
1 голос
/ 05 июля 2010

Мне нужен цикл, который может постоянно проверять эту переменную:

NSString *charlieSoundVolume;
charlieSoundVolume = [charlieSoundLevel stringValue];

Эта переменная изменится патчем построителя интерфейса. Я думал сделать это:

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
  while(1) {
    float floatValue;
    floatValue = 0.0001;
    NSString *charlieSoundVolume;
        charlieSoundVolume = [charlieSoundLevel stringValue];
    if(charlieSoundVolume >= floatValue){
         (do something)
        }


}

}

Но это заморозит остальную часть приложения. Как еще это можно сделать?

Спасибо, Илия

Ответы [ 2 ]

3 голосов
/ 05 июля 2010

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

1 голос
/ 05 июля 2010

Использование NSTimer .

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
 timer = [NSTimer scheduledTimerWithTimeInterval:0.25 target:self selector:@selector(timerFired:) userInfo:nil repeats:YES];
}

- (void)timerFired:(NSTimer*)theTimer
{
 float floatValue = 0.0001;
 NSString *charlieSoundVolume = [charlieSoundLevel stringValue];
 if (charlieSoundVolume >= floatValue) {
  // do something
 }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...