• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 函数不会运行所有行

[复制链接]
菜鸟教程小白 发表于 2022-12-11 20:48:40 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我有波纹管功能,但它似乎没有通过 if let snapshotValue 行,我相信它是因为 snapshotUrl.value 不是字典。如果是这样我如何将其转换为一个?

func fetchAllPostImages() {
    print("fetchAllPostImages function")
    self.ref.child("osts").child(self.userID).child(self.postNum).child("Images").observe(.childAdded, with: { snapshot in
        var snapshotUrl = snapshot.childSnapshot(forPath: "ImageUrl")
        var snapshotTimeStamp = snapshot.childSnapshot(forPath: "timeStamp")
        print("fhdsjaklhfkjdsfksahdjksfjlashfkljdhs")
        print(snapshot.childSnapshot(forPath: "ImageUrl"))
        print(snapshotUrl.value, "value")

        if let snapShotValue = snapshotUrl.value as? [String: String] {
            print("jkdfbhksafgsaghsjbbvcbcbcbccbbbbbbbbbbbbbbb")

            for (_, value) in snapShotValue {
                print(value)

                if let imageURL = URL(string: value) {
                    print(imageURL, "image url here")

                    do {
                        let imageAsData = try Data(contentsOf: imageURL)
                        let image = UIImage(data: imageAsData)
                        //                                let ImageObject = Media()
                        //                                ImageObject.image = image
                        var timeStamp = 0.0
                        self.arrayOfImgObj.append(Media(image: image!, timeStamp: timeStamp))
                        self.tableView.reloadData()
                        print(self.arrayOfImgObj.count, "array.count")
                    } catch {
                        print("imageURL was not able to be converted into data")
                    }
                }
            }
        }
    })
}

函数的输出:

fetchAllPostImages function 
fhdsjaklhfkjdsfksahdjksfjlashfkljdhs 
Snap (ImageUrl)
     https://firebasestge.googleapis.com/v0/b/copyyubidatabase.appspot.com/o/rVNvbWrC9aarXOTSHNXGoaIeR5B3%2Fpost:563592299%2Fimage1?alt=media&token=a0c4aeda-769a-48ac-85c8-ab595ccfdf08
     Optional(https://fireestorage.googleapis.com/v0/b/copyyubidatabase.appspot.com/o/rVNvbWrC9aarXOTSHNXGoaIeR5B3%2Fpost:563592299%2Fimage1?alt=media&token=a0c4aeda-769a-48ac-85c8-ab595ccfdf08)
     value



Best Answer-推荐答案


看起来 snapshotUrl.value 是一个可选包装的 URL。如果你想把它转换成字典,你只需要一个键和一个值。

我们无权访问 snapshot 的数据结构来告诉您如何准确使用它。

这是一些演示我的意思的 Playground 代码。这是按原样工作的:

import UIKit
import PlaygroundSupport

struct SnapShot {
    func childSnapshot(forPath: String) -> URLWrapper? {
        return URLWrapper(url: URL(string: "https://image.shutterstock.com/image-vector/sample-red-square-grunge-stamp-260nw-338250266.jpg")!)
    }
}

struct URLWrapper {
    var url:URL

    var value:String? {
        get {
            return url.absoluteString
        }
    }
}

func fetchAllPostImages() {
    let session = URLSession.shared

    print("fetchAllPostImages function")
    let snapshot = SnapShot()
    if let snapshotUrl = snapshot.childSnapshot(forPath: "ImageUrl"), let snapShotValue = snapshotUrl.value, let imageURL = URL(string: snapShotValue) {
        let task = session.dataTask(with: imageURL, completionHandler: { (data, response, error) in
            if let data = data {
                let image = UIImage(data: data)
                print(image ?? "none")
            }
        })
        task.resume()
    }
}

PlaygroundPage.current.needsIndefiniteExecution = true

fetchAllPostImages()

关于ios - 函数不会运行所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53270568/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap