NSURL错误代码1022

Baw*_*ter 6 objective-c ios

我有一个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 项)”