将 Xcode 6.4 更新到 Xcode 7.0 后,NSData dataWithContentsOfURL 为空

Posted

技术标签:

【中文标题】将 Xcode 6.4 更新到 Xcode 7.0 后,NSData dataWithContentsOfURL 为空【英文标题】:NSData dataWithContentsOfURL are null after update Xcode 6.4 to Xcode 7.0 【发布时间】:2015-09-17 18:49:08 【问题描述】:

在我更新 Xcode 6.4 版之前,它仍然可以正常工作。

这是我的代码

 - (NSArray*)getData
NSMutableArray *result = [[NSMutableArray alloc] init]; 
    NSString *path = @"http://rmfl.nagasoftware.com/api/plant_by_season.php?lang_code=1&season_id=0";

    if(path)
     NSLog(@"%@",path);
        NSURL *json = [NSURL URLWithString:path]; // jsonString
         NSLog(@"URL is %@",[json absoluteString]);
        NSData *jsonData = [NSData dataWithContentsOfURL:json];

这里是从 NSLog 中查看图像的链接。

【问题讨论】:

【参考方案1】:

我怀疑你也更新到了 ios 9,如果是这样,那就是问题所在。

见:App Transport Security Technote

解决方案是将服务器更新到 https TLS 1.2 并转发安全性。

另一种解决方案是将应用 plist 上的 url 列入白名单,或者在必要时允许所有 http 连接。这降低了连接的安全性,最好的办法是更新服务器。

【讨论】:

我只是很好奇 XCode 6.x 还能为他们工作吗?我想我们也不知道他们是如何运行代码的(模拟器或真实设备)。好答案+1 Xcode 7.x 中的 targerf iOS 版本是什么?新规则仅适用于目标是 iOS 9 并且设备上的版本也是 iOS 9(当然更高版本)的情况。 嗯,我认为他们需要告诉你 :) 据我了解,虽然OS X 10.11 也会有你提到的变化。 有描述的WWDC 2015 session 706 以及发行说明:What's New in iOS iOS 9.0。我相信在 WWDC 主题演讲中也提到了这一点。 是的,10.11 还将支持应用传输安全 (ATS)。

以上是关于将 Xcode 6.4 更新到 Xcode 7.0 后,NSData dataWithContentsOfURL 为空的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 6.4 故事板崩溃

如何使用 xcode 6.4 支持 iOS 7.0?

将 Xcode 更新到 7.0 后出现错误

更新到 Xcode 7.1(从 6.4)导致 UIIMageView 动画损坏

Swift 2 的 Xcode 7.0 更新问题

如何从 xcode 6.4 向 SVN 提交代码?