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

时间:2018-02-26 14:49:25

标签: ios iphone swift

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

提前致谢

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
    <key>NSExceptionMinimumTLSVersion</key>
    <string>TLSv1.0</string>
</dict>

3 个答案:

答案 0 :(得分:2)

我认为这是关于App Transport Security。因为您的网址不是https。请在info.plist文件中尝试更改

<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>

您可以查看以下链接中的所有错误代码及含义

NSError by NSHipster

答案 1 :(得分:0)

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

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

请与邮递员再次检查网址。

答案 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获取网址,请特别仔细检查您的网址。