Ios 无法将布尔类型的值分配给类型字符串数据库表示形式
如何将非字符串类型的数据添加到DatabaseRepresentation。我尝试过任何对象,但不符合哈希协议 lastMessageRead是Bool类型,还是我只是将其存储为字符串Ios 无法将布尔类型的值分配给类型字符串数据库表示形式,ios,swift,firebase,google-cloud-firestore,Ios,Swift,Firebase,Google Cloud Firestore,如何将非字符串类型的数据添加到DatabaseRepresentation。我尝试过任何对象,但不符合哈希协议 lastMessageRead是Bool类型,还是我只是将其存储为字符串 extension Channel: DatabaseRepresentation { var representation: [String : Any] { var rep = ["ownerName": ownerName] rep["ownerId"] = own
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
}
}
您可以尝试以下方法:
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
希望对您有所帮助……您可以尝试以下方法:
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
希望它能帮助…将
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
}
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
}
谢谢,这对Bool值很有效。我该如何确定日期值呢?谢谢,这对布尔值很有效。如何确定日期值?这个问题有点模糊,因为没有说明什么是
lastMessageRead
,这就是问题所在。目前提供的答案只是一个解决办法,并没有解决实际问题。i、 e.当你真的想要一个布尔值时,为什么还要努力将布尔值转换成字符串,这样你就可以测试真与假?这个问题有点模糊,因为没有迹象表明什么是lastMessageRead
,这就是问题所在。目前提供的答案只是一个解决办法,并没有解决实际问题。i、 e.当你真的想要一个布尔时,为什么还要努力把布尔转换成一个字符串,这样你就可以测试真与假了?