【问题标题】:Append Dictionary, iOS, Swift附加字典,iOS,Swift
【发布时间】:2017-12-28 07:11:29
【问题描述】:

我正在尝试编辑我创建的将文本发布到 firebase 的代码。我最初只允许 8 张图片和描述,不多也不少。我现在正在重构,以便用户可以选择最多 8 的任何数字。我检查照片是否正常工作,它会上传选择的数量。我已经检查是否有图片,如果有,它将显示文本框以添加描述,否则它会被隐藏。我的问题是我有一本字典,该字典发布到发布 8 个描述的 firebase,所以如果我要创建 2 个,它将用“”填充其他 6 个,有没有办法检查图像是否像我上面所做的那样为零添加到字典以上传。我的功能如下..

    func postToFirebase() {

    let  post: Dictionary<String, AnyObject> = [
        "photoInfo1": photoInfo1.text as AnyObject,
        "photoInfo2": photoInfo2.text as AnyObject,
        "photoInfo3": photoInfo3.text as AnyObject,
        "photoInfo4": photoInfo4.text as AnyObject,
        "photoInfo5": photoInfo5.text as AnyObject,
        "photoInfo6": photoInfo6.text as AnyObject,
        "photoInfo7": photoInfo7.text as AnyObject,
        "photoInfo8": photoInfo8.text as AnyObject
    ]


    let firebasePost = DataService.ds.REF_BASE.child("posts").child("\(stringPassed)")
    firebasePost.updateChildValues(post)
}

我在此之前所做的隐藏框的检查是..

if passImage2 == nil {
        photo2.isHidden = true
        photoInfo2.isHidden = true
    }

等等。

我希望我可以检查一下照片是否不为零,如果是,则附加“post”字典,而不是将它们全部编码。

【问题讨论】:

    标签: ios dictionary append


    【解决方案1】:

    如果您不需要您的 photoInfo 连续编号,您可以使用

    let filtered = post.filter { (key, value) -> Bool in
        guard let stringValue = value as? String else { return false }
        return stringValue != ""
    }
    

    如果你需要它是连续的,你可以过滤一个标签文本数组,然后使用 enumerated 和 reduce,你可以创建一个新的字典。

    【讨论】:

    • 感谢 Luzo。这对 e 来说是完美的,我学到了一些新东西。我现在知道我可以这样做 .filter 来创建一个新的项目字典,其中包含一些东西。伟大的工作
    猜你喜欢
    • 2015-06-10
    • 2016-06-11
    • 1970-01-01
    • 2021-04-24
    • 2015-11-03
    • 1970-01-01
    • 2023-02-24
    • 2015-08-30
    • 1970-01-01
    相关资源
    最近更新 更多