iphone - NSData dataWithContentsOfURL : stopped working in iOS 6

标签 iphone objective-c ios ios6 nsdata

这个问题与this one非常相似.

但是,接受的答案(也是唯一的答案)并没有解决我的问题。

我有一个“混合”iOS 应用程序,其中包含一个 UITabView 和一组 UIWebViews,显示来自 Web 服务器的 HTML5 中的一些应用程序内容。在引擎盖下有一个小的自制缓存引擎,可以在后台缓存内容。此缓存引擎使用此行填充其数据

[NSData dataWithContentsOfURL:request.URL options:NSDataReadingUncached error:&error];

到目前为止,该应用程序运行完美,没有任何问题,但在 iOS 6 中,它不再运行了。使用调试器,我得出的结论是上面的行不起作用。当我跨过上面的行时,它只是无法加载页面,过了一会儿我收到错误 256。当我切换到 iOS 5 时,它运行完美。

我已经打印了 NSURL 对象 request.URL,它看起来应该包含“http://”部分,如下所示:

http://app.customername.com/.mvc/MobileApp/Index

我还尝试加载一个与应用程序网站无关的测试页面,一个我自己制作的非常简单的 html 页面,还有 http://www.google.com

它们都在 iOS 5.1 中工作,但在 iOS 6 中这些页面出现了同样的问题。

我也试过使用没有像这样的“Uncached”选项的方法,但仍然没有运气:

[NSData dataWithContentsOfURL:request.URL]

在 iOS 6 中数据 dataWithContentsOfURL: 方法有什么变化吗?有其他人看到这个问题吗?

最佳答案

所以,我遇到了同样的问题,但我不知道确切原因。

我假设它与 NSURLCache 线程不能很好地处理 dataWithContentsOfURL 有关。如果有人知道为什么请插话。

最重要的是,我的项目中已经有 ASIHTTP,所以我替换了它:

NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:url]];

有了这个:

ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:[NSURL URLWithString:url]];
[request startSynchronous];        
NSData *data = [request responseData];

现在一切都很好。

关于iphone - NSData dataWithContentsOfURL : stopped working in iOS 6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12896990/

相关文章:

ios - 将导航栏标题文本更改为自定义颜色?

ios - 从网站获取图像列表并显示它

ios - 有没有办法使用 sysctl 获取 iPhone 型号?

iphone - 相对于背景图像的负文本颜色

objective-c - Objective C 库和搜索路径

ios - 使用导航栏和 UITextField 时出现问题

iphone - SQLite3 COUNT 不正确

iphone - 当我将它们翻译成另一种语言时,正则表达式是否有效?

iphone - 回合制 iphone 游戏网络

ios - 我可以从 XCAssets 包中获取 NSURL 吗?