我有一个RSS阅读器应用程序,它有一个解析器.它运行良好,直到iOS 9测试版.每当我尝试加载数据时,都会收到错误代码1022.这是我建立连接的代码:
- (void)parseRssFeed:(NSString *)url withDelegate:(id)aDelegate {
[self setDelegate:aDelegate];
responseData = [NSMutableData data];
NSURL *baseURL = [NSURL URLWithString:url];
NSURLRequest *request = [NSURLRequest requestWithURL:baseURL];
[[NSURLConnection alloc] initWithRequest:request delegate:self];
}
Run Code Online (Sandbox Code Playgroud)
和错误处理程序:
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
NSString * errorString = [NSString stringWithFormat:@"Unable to download XML data (Error code %i )", [error code]];
UIAlertView * errorAlert = [[UIAlertView alloc] initWithTitle:@"Error loading content" message:errorString delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[errorAlert show];
}
Run Code Online (Sandbox Code Playgroud)
我不确定iOS 8和9之间有什么变化,但由于某种原因,该应用程序不再有效.任何帮助将不胜感激!
Baw*_*ter 18
因此,问题与ATS(App Transport Security)有关,这是iOS 9中的一项新功能,可在连接之前检查URL的真实性.由于我不关心我正在连接的网站的安全性,我完全禁用了ATS.这可以通过将以下代码添加到应用程序的info.plist文件来完成:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
Run Code Online (Sandbox Code Playgroud)
小智 5
对于 swift4,将其添加到应用程序的 info.plist 中
<key>App Transport Security Settings</key>
<dict>
<key>Allow Arbitrary Loads</key>
<true/>
</dict>
Run Code Online (Sandbox Code Playgroud)
或者
转到应用程序的 info.plist
右键单击并选择Add Row
并找到App Transport Security Settings并单击它。然后再次右键单击App Transport Security Settings并选择Add Row
然后找到并单击Allow Arbitrary Loads并将其值修改为YES。
键入“应用程序传输...”或“允许任意...”时自动完成可能会很慢或根本不存在,因此您可以等待它或无论如何键入它,然后单击列表的“值”一侧(右侧) )并写入 YES(允许任意负载)。在添加任意负载之前,应用程序传输安全设置不会有“值”,然后它会显示“(1 项)”
| 归档时间: |
|
| 查看次数: |
9244 次 |
| 最近记录: |