NSURLConnection完成错误 – 代码-1002修复不起作用

我收到此错误NSURLConnection完成错误 – 代码-1002。 我已将下面的代码添加到我的info.plist中。 有谁知道为什么?

提前致谢

NSAppTransportSecurity  NSAllowsArbitraryLoads  NSExceptionMinimumTLSVersion TLSv1.0  

我认为这是关于App Transport Security。因为你的url不是https。试着在info.plist文件中改变这个

 NSAppTransportSecurity  NSAllowsArbitraryLoads   

您可以在以下链接上查看所有错误代码及其含义

NSHipster的NSError

错误状态 – 代码-1002根据文档请检查。 ,

https://developer.apple.com/documentation/foundation/1508628-url_loading_system_error_codes/nsurlerrorunsupportedurl?language=objc

请与邮递员再次检查url。

我有同样的问题,但我的情况不同。 以下是生成错误的代码:

  if let url = URL(string: imageUrl){ getDataFromUrl(url: url) { data, response, error in DispatchQueue.main.async() { if let imageFile = UIImage(data: data) { self.createItem(forModule: module, title: title, description: description, date: date, image: imageFile, table: table) } else { self.createItem(forModule: module, title: title, description: description, date: date, image: nil, table: table) } } } } else { print("invalid url") } private func getDataFromUrl(url: URL, completion: @escaping (Data?, URLResponse?, Error?) -> ()) { URLSession.shared.dataTask(with: url) { data, response, error in completion(data, response, error) }.resume() } 

后来我发现imageUrl实际上并不是一个url,它只是一个字符串,字面意思是“假”就是这样。 什么使它更糟糕的是它没有在其他两个陈述中被捕获。

所以我通过添加下面的警卫来解决它:

 if let url = URL(string: imageUrl){ getDataFromUrl(url: url) { data, response, error in guard let data = data, error == nil else { self.createItem(forModule: module, title: title, description: description, date: date, image: nil, table: table) return } DispatchQueue.main.async() { if let imageFile = UIImage(data: data) { self.createItem(forModule: module, title: title, description: description, date: date, image: imageFile, table: table) } else { self.createItem(forModule: module, title: title, description: description, date: date, image: nil, table: table) } } } } 

现在我可以调用createItem函数并保存我的项目而不成功。 因此,如果您是从API获取URL,请特别仔细检查您的URL。