微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法在当前上下文中推断闭包类型

如何解决无法在当前上下文中推断闭包类型

它不推断闭包类型的原因是因为try未处理该语句。这意味着关闭预期会"catch"出现错误,但是在您的情况下,您忘记了do-try- catch规则。

因此,您可以尝试使用以下答案来捕获您的错误

do {
    let imageAsData = try Data(contentsOf: imageURL)
    let image = UIImage(data: imageAsData)
    let ImageObject = Image()
    ImageObject.image = image
    self.arrayOfImgObj.append(ImageObject)
} catch {
    print("imageURL was not able to be converted into data") // Assert or add an alert
}

然后,您可以断言错误(用于测试),或者我个人会设置警报。

这样,应用程序不会崩溃,而是通知用户。我发现这在旅途中 有用,而且我的设备未插入电源- 因此我可以看到错误消息,而不是完全崩溃,不知道发生了什么。

解决方法

在下面函数的第三行,出现以下错误:

无法在当前上下文中推断闭包类型

我该如何解决?

func fetchAllUsersImages() {
    print("inside func")
    self.ref.child("Posts").child(self.userID).child(self.postNum).observe(.childAdded,with: { snapshot in //error here

        var images: [URL] = []
        if let snapShotValue = snapshot.value as? [String: String] {

            for (_,value) in snapShotValue {
                if let imageURL = URL(string: value) {
                    print(imageURL,"image url here")
                    let imageAsData = try Data(contentsOf: imageURL)
                    let image = UIImage(data: imageAsData)
                    let ImageObject = Image()
                    ImageObject.image = image
                    self.arrayOfImgObj.append(ImageObject)
                    self.tableView.reloadData()
                }
            }
        }
    })
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。