【发布时间】:2013-05-23 10:01:21
【问题描述】:
我有这个方法
- (BOOL)connectedToInternet
{
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:
[NSURL URLWithString:@"http://www.google.com/"]];
[request setHTTPMethod:@"HEAD"];
NSHTTPURLResponse *response;
[NSURLConnection sendSynchronousRequest:request
returningResponse:&response error: NULL];
return ([response statusCode] == 200) ? YES : NO;
}
该方法需要几秒钟才能完成,我在一个简单的条件下使用它来了解我是否有互联网连接。
有什么方法可以在后台线程中完成,而无需更改所有代码。
我这样称呼它
if([self connectedToInternet])
因此,如果我在后台线程中执行此操作,我将无法获得返回值,然后我的方法也无法返回该值。
如果我必须改变一切,那是不值得的。
希望你能理解我的问题并感谢您的帮助。
【问题讨论】:
-
为什么不能在后台线程运行它的返回值?
-
如果我使用 [NSThread detachNewThreadSelector:] 运行它,我无法在同一方法上获得返回值。我将不得不将返回发送到另一种方法,然后调用将无法正常工作。
-
@userXXX 回调呢?
-
我认为正确的方法在这里详述:stackoverflow.com/questions/8036895/read-nsurlresponse
标签: ios objective-c