Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone nsurlRequestWithURL:仅在I';之后在设备上工作;我访问了Mobile Safari中的一个页面_Iphone_Objective C_Cocoa Touch - Fatal编程技术网

Iphone nsurlRequestWithURL:仅在I';之后在设备上工作;我访问了Mobile Safari中的一个页面

Iphone nsurlRequestWithURL:仅在I';之后在设备上工作;我访问了Mobile Safari中的一个页面,iphone,objective-c,cocoa-touch,Iphone,Objective C,Cocoa Touch,我有以下代码: NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.lenzerheide.com/modules/weather/iphoneweather.php"] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval: 10.0f]; [[NSURLConnection alloc] initW

我有以下代码:

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.lenzerheide.com/modules/weather/iphoneweather.php"] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval: 10.0f];

[[NSURLConnection alloc] initWithRequest:request delegate:self];
当我在iPhone上测试应用程序时,在一些手机上(可能是那些最近没有访问过mobile safari页面的手机),didFailWithError会被呼叫“连接已终止”,不是一次,而是总是。但当我在mobile safari中访问一个站点时,这个问题似乎会在几个小时内完全消失。我甚至可以删除应用程序,重新安装,问题仍然没有。似乎需要几个小时才能发现这个问题,而且是同一个过程,它只是在我首先访问了mobile safari中的一个站点之后才加载XML。如果我不这么做,迪德罗就会一直被打电话

哦,顺便说一句,承载xml的网页一直在工作。我可以在Mac上加载XML,没有任何问题,甚至没有延迟。就在最近没有访问过mobile safari页面的iPhone上,我发现了这个问题


有什么想法吗?

我想你的超时时间在页面打开之前就被触发了,当你第一次尝试访问页面时,手机上的DNS解析可能比你第一次访问mobile safari时预期的要长一点,然后dns第一次也会花费更长的时间,但移动safari可能会比你的稍高一些超时。下次您从应用程序访问页面时,dns解析将不会花费任何时间,因为它将在短时间内从缓存中拾取,通常为2到48小时(取决于dns服务器的超时值)。因此,在访问MobileSafari中的页面获取超时值后,您的xml加载速度可能会更快,并且符合您的超时值


因此,请尝试增加超时值或同时忽略超时值,然后查看。

Thx将尝试一下。我第一次使用了不带超时选项的nsurlRequestWithURL调用,但它也有同样的问题,所以现在我将尝试使用更大的超时。希望它能工作。好吧,我把它改为60秒,但是运气不好,连接几乎立即终止,所以超时似乎没有影响。和以前一样,只需在mobile safari中访问一个页面就可以解决问题。奇怪。你在使用同步连接吗?哦,顺便说一句,苹果网站的SimpleURLConnection示例代码也有同样的问题,所以我想我不能做任何反对它的事情?