将 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 连接。这降低了连接的安全性,最好的办法是更新服务器。
【讨论】:
我只是很好奇 XCode6.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 为空的主要内容,如果未能解决你的问题,请参考以下文章