【问题标题】:Cannot assign value of Bool type to type String Database Representation无法将 Bool 类型的值分配给类型 String 数据库表示
【发布时间】:2020-03-05 08:39:08
【问题描述】:

如何将非字符串类型的数据添加到 DatabaseRepresentation。我尝试过 AnyObject,但不符合哈希协议。

lastMessageRead 是 Bool 类型还是我只是将其存储为字符串?

extension Channel: DatabaseRepresentation {

    var representation: [String : Any] {
        var rep = ["ownerName": ownerName]
        rep["ownerId"] = ownerId
        rep["participantName"] = participantName
        rep["participantId"] = participantId
        rep["lastMessage"] = lastMessage
        rep["lastMessageId"] = lastMessageId

        if let lastMessageRead = lastMessageRead {
            rep["lastMessageRead"] = lastMessageRead **Cannot assign Bool to String
        }

        if let id = id {
            rep["id"] = id
        }
        return rep
    }
}

【问题讨论】:

  • 这个问题有点模糊,因为没有迹象表明lastMessageRead 是什么,而这就是问题所在。提供的答案(到目前为止)是一种解决方法,并未解决实际问题。也就是说,当你真的想要一个布尔值时,为什么还要努力将布尔值转换为字符串,以便测试真假?

标签: ios swift firebase google-cloud-firestore


【解决方案1】:

你可以试试这个:

var representation: [String : String]

rep["yourData"] = "\(your data)"

日期:

    let formatter = DateFormatter()
    formatter.dateStyle = DateFormatter.Style.medium
    formatter.timeStyle = DateFormatter.Style.none
    formatter.dateFormat = "dd.MM.yyyy"
    let text = formatter.string(from: yourDateValue)
    rep["yourDate"] = text

希望对你有帮助...

【讨论】:

  • 感谢 Bool 值效果很好。我将如何处理日期值?
【解决方案2】:

rep 的类型被推断为[String:String] 字典。

rep 声明为[String:Any] 然后您可以添加any 值而无需转换。

此外,没有必要选择性地绑定这两个值。如果它们是nil,则不会添加任何内容。

var representation: [String : Any] {
    var rep = [String : Any]()

    rep["ownerName"] = ownerName
    rep["ownerId"] = ownerId
    rep["participantName"] = participantName
    rep["participantId"] = participantId
    rep["lastMessage"] = lastMessage
    rep["lastMessageId"] = lastMessageId
    rep["lastMessageRead"] = lastMessageRead   
    rep["id"] = id
    return rep
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-08
    相关资源
    最近更新 更多