我正在使用 AFNetworking 客户端对象,它对 XML 文档发出异步请求并对其进行解析。
还使用NSNotificationCenter在文档完成解析时发布通知。
有没有办法在不阻塞主线程的情况下等待发布通知?
例如代码:
-(void)saveConfiguration:(id)sender {
TLHTTPClient *RESTClient = [TLHTTPClient sharedClient];
// Performs the asynchronous fetching....this works.
[RESTClient fetchActiveUser:[usernameTextField stringValue] withPassword:[passwordTextField stringValue]];
/*
* What do I need here ? while (xxx) ?
*/
NSLog(@"Fetch Complete.");
}
基本上我想知道在上述指定区域中我需要什么样的代码来确保函数等到提取完成?
就像现在一样,我将看到“获取完成”。在获取完成之前在调试控制台中。
我尝试在 TLHTTPClient 类中添加一个 BOOL 标志:
BOOL fetchingFlag;
然后尝试:
while([RESTClient fetchingFlag]) { NSLog(@"fetching...); }
当此类收到通知时,它会设置 RESTClient.fetchingFlag = FALSE; 从技术上讲,哪个应该杀死while循环?除了我的while循环无限运行?!