我收到此错误NSURLConnection完成错误 - 代码-1002。 我已将下面的代码添加到我的info.plist中。有谁知道为什么?
提前致谢
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSExceptionMinimumTLSVersion</key>
<string>TLSv1.0</string>
</dict>
答案 0 :(得分:2)
我认为这是关于App Transport Security。因为您的网址不是https。请在info.plist文件中尝试更改
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
您可以查看以下链接中的所有错误代码及含义
答案 1 :(得分:0)
错误状态 - 代码-1002根据文档请检查。 ,
请与邮递员再次检查网址。
答案 2 :(得分:0)
我有同样的问题,但我的情况有所不同。以下是生成错误的代码:
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获取网址,请特别仔细检查您的网址。