если цикл выполняется асинхронно - PullRequest
0 голосов
/ 09 марта 2012

Привет всем, я хочу создать цикл if, который выполняется асинхронно с этим кодом:

NSString *care = [[NSString alloc] initWithContentsOfURL:[NSURL URLWithString:@"http://localhost/untitled.txt"]];
if (care == @"ONRED") { //untitled.txt = ONRED
   [red_on setHidden:NO];
   [red_off setHidden:YES];
}

Как я могу выполнить оператор if как цикл?

1 Ответ

1 голос
/ 09 марта 2012

Если я вас правильно понял, вы можете поместить эти операторы в метод и вызвать performSelectorInBackground:

(void)asyncMethod {
    NSString *care = [[NSString alloc] initWithContentsOfURL:[NSURL URLWithString:@"http://localhost/untitled.txt"]];
    if (care == @"ONRED") { //untitled.txt = ONRED
        [red_on setHidden:NO];
        [red_off setHidden:YES];
    }
}

// in some other method
[self performSelectorInBackground:@selector(asyncMethod) withObject:nil];

Другой вариант - использовать большую центральную диспетчеризацию (как описано в этого ответа):

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 
                                         (unsigned long)NULL), ^(void) {
    NSString *care = [[NSString alloc] initWithContentsOfURL:[NSURL URLWithString:@"http://localhost/untitled.txt"]];
        if (care == @"ONRED") { //untitled.txt = ONRED
            [red_on setHidden:NO];
            [red_off setHidden:YES];
        }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...