在我的应用程序中针对可访问网络进行此代码轮询 ( “http://soxxx9.cafe24.com/event.php”)
NSString * szURL =[NSString stringWithFormat:@"http://soxxx9.cafe24.com/event.php"];
NSURL *url = [NSURL URLWithString:[szURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding ]];
NSString *strData;
while(1)
{
NSError *error = nil;
strData = [NSString stringWithContentsOfURL:url
encoding:NSUTF8StringEncoding
error:&error];
if(!error)
break;
//String data is not owned by me, no need to release
}
如果你有更好的方法,请教我。
答案 0 :(得分:1)
当网络出局时,此代码似乎耗费大量资源:您将尝试数百万次下载无法访问的内容......
查看Apple提供的Reachability类(http://developer.apple.com/library/ios/#samplecode/Reachability/Introduction/Intro.html)。你会在gitHub上找到ARCified版本(例如https://github.com/tonymillion/Reachability)。
想法是注册有关网络可达性的通知。
所以,在你的代码中:
如果网络不可用,则必须通知用户网络无法访问,并注册可访问性通知,以便在再次访问时再次检索字符串。
答案 1 :(得分:0)
您应该有一个类来为您处理连接。通过这种方式,您可以更好地控制正在发生的事情。 MKNetworkKit
是一种解决方案,您可以查看here。