Вызывает - [NSRunLoop runUntilDate: ] хорошая идея?

Это вообще хорошая идея - позвонить - [NSRunLoop runUntilDate:] ? Кажется, он работает без каких-либо проблем, но я нервничаю, когда говорю, что цикл выполнения запускается из цикла выполнения.

Дополнительная информация:

У меня сейчас есть проект, который извлекает данные из службы REST. Одна критическая информация, которую необходимо получить, - это диапазон дат с достоверными данными. Это очень маленький бит данных, который нужно получить только один раз, поэтому я решил, что лучший способ справиться с этим - это заставить свойство загружать данные, если локальная переменная nil . Я' m, используя ASIHTTPRequest и ASINetworkQueue , поэтому по умолчанию все асинхронно, и для того, чтобы это работало, это свойство не может возвращаться, пока данные не будут загружены и обработаны. Вот набросок моего кода, имена переменных были изменены для защиты невиновных:

__block BOOL isWorking = YES;
__block ASIHTTPRequest *request = [[[ASIHTTPRequest alloc] initWithURL:/*actual URL*/] autorelease];
[request setCompletionBlock:^{
    // set local variable
    isWorking = NO;
}];
[request setFailedBlock:^{
    // show alert to user
    isWorking = NO;
}];
[queue addOperation:request];

while (isWorking) {
    [[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];
}

Опять же, похоже, все работает нормально. Есть ли какие-либо потенциальные проблемы при использовании этого подхода?

9
задан Jose Ibanez 7 February 2011 в 06:20
поделиться