NSURLConnection完成错误 – 代码-1002修复不起作用
我收到此错误NSURLConnection完成错误 – 代码-1002。 我已将下面的代码添加到我的info.plist中。 有谁知道为什么?
提前致谢
NSAppTransportSecurity NSAllowsArbitraryLoads NSExceptionMinimumTLSVersion TLSv1.0
我认为这是关于App Transport Security。因为你的url不是https。试着在info.plist文件中改变这个
NSAppTransportSecurity NSAllowsArbitraryLoads
您可以在以下链接上查看所有错误代码及其含义
NSHipster的NSError
错误状态 – 代码-1002根据文档请检查。 ,
请与邮递员再次检查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。