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示例代码也有同样的问题,所以我想我不能做任何反对它的事情?