gpt4 book ai didi

ios - Firebase 在 Swift iOS 中将我的 Double 检索为字符串?

转载 作者:搜寻专家 更新时间:2023-11-01 06:06:11 27 4
gpt4 key购买 nike

所以我正在将字典保存到我的 firebase 中。该词典位于我创建的名为 FoodItem 的自定义类中。这是我保存字典的行:

let favRef = self.ref.childByAppendingPath("urlhidden")
favRef.setValue(foodItem.toAnyObject())

foodItem 是一个 FoodItem 对象,这是我的 FoodItem 类中实现 .toAnyObject() 的部分

var key: String
var ref: Firebase?
var name: String
var description: String
var minCal: Int
var maxCal: Int
var containsNuts: Bool
var vegetarian: Bool
var price: Double //**NOTE THAT PRICE IS A DOUBLE**

func toAnyObject()->[String:AnyObject]{
return ["name":self.name,
"price":self.price,
"description":self.description,
"minCal":self.minCal,
"maxCal":self.maxCal,
"containsNuts":self.containsNuts,
"vegetarian":self.vegetarian]
}

所以这些代码组合起来将我的数据保存到我的 firebase 中。正常工作。但是当我检索数据时,我的价格变量是一个字符串?我会解释...

这是我检索数据的地方:

func getCurrentOrder(){
let uid = ref.authData.uid
ref = Firebase(url: "urlhidden")
ref.observeEventType(.Value, withBlock: { snapshot in

var newItems = [FoodItem]()

for item in snapshot.children {

let foodItem = FoodItem(snapshot: item as! FDataSnapshot)
newItems.append(foodItem)
}

self.order = newItems
self.tableView.reloadData()
})
}

您在快照中看到的 FoodItem 构造函数从我的 firebase 中获取数据,并将我的 FoodItem 变量分配给我的 firebase 中的那些值。这是代码:

init(snapshot: FDataSnapshot) {
key = snapshot.key
name = snapshot.value["name"] as! String
price = snapshot.value["price"] as! Double //**NOTE STILL A DOUBLE**
description = snapshot.value["description"] as! String
minCal = snapshot.value["minCal"] as! Int
maxCal = snapshot.value["maxCal"] as! Int
containsNuts = snapshot.value["containsNuts"] as! Bool
vegetarian = snapshot.value["vegetarian"] as! Bool

ref = snapshot.ref
}

然而,当我运行我的代码时,我看到它将 double 打印为字符串 There are quotes around the value of my price

如您所见,Double 变量“price”周围有明显的引号。我得到这个错误:

无法将类型“__NSCFString”(0xff0ee0)的值转换为“NSNumber”(0x13ff81c)。

这行代码以红色突出显示:

price = snapshot.value["price"] as! Double

它位于 FoodItem 构造函数内部,带有我在上面发布的快照。

有什么想法吗???

*编辑:它对我的 int 变量做同样的事情。相同的错误信息

最佳答案

它实际上从未将其保存为字符串。我相信我在那里有那个值作为一些旧代码,我在其中将它保存为一个字符串。我删除了数据库中的条目并再次尝试,它工作得很好。感谢那些试图回答我的问题的人。

关于ios - Firebase 在 Swift iOS 中将我的 Double 检索为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36797001/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com