通常调用
更多信息:
我现在有一个从REST服务中获取数据的项目。其中一个关键信息是获取具有有效数据的日期范围。这只是一小部分数据,只需要获取一次,因此我决定最好的处理方法是当本地变量为
-[NSRunLoop runUntilDate:]
是个好主意吗?它似乎没有任何问题,但是让运行循环在运行循环内部运行让我感到紧张。更多信息:
我现在有一个从REST服务中获取数据的项目。其中一个关键信息是获取具有有效数据的日期范围。这只是一小部分数据,只需要获取一次,因此我决定最好的处理方法是当本地变量为
nil
时,使属性下载数据。我正在使用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]];
}
再次测试,看起来这个方法运行良好。使用这种方法可能会有哪些潜在问题吗?