我正在尝试将 FIRDataSnapshot 转换为自定义类型(即我知道每个 child 将有姓名、电话号码和电子邮件)
当我运行下面的代码时,控制台将打印一个 JSON 树,其中每个子项都包含名称、号码和电子邮件。
所以我想将快照存储为具有每个属性的自定义类型“PersonInfo”。这样我就可以在我的应用程序中更改这些数据。我需要在我的应用程序的各个部分使用我将此数据存储到的“PersonInfo”变量。
ref.observeSingleEventOfType(.Value, withBlock: { (snapshot: FIRDataSnapshot) in
print(snapshot)
})
最佳答案
您可以定义一个自定义类 PersonInfo 作为模型。
class PersonInfo: NSObject {
var pName: String
var pNumber :String
var pEmail: String
let ref: FIRDatabaseReference?
init( name: String, number: String, email: String) {
self.pName = name
self.pNumber = number
self.pEmail = email
self.ref = nil
}
init(snapshot: FIRDataSnapshot) {
pName = snapshot.value!["pName"] as! String
pNumber = snapshot.value!["pNumber"] as! String
pEmail = snapshot.value!["pEmail"] as! String
ref = snapshot.ref
}
convenience override init() {
self.init(name:"",number: "", email: "")
}
}
在你的 observeSingleEventOfType
中,当你有 snapshot
时,你可以遍历它的 child 并获取每个人作为:
for item in snapshot.children{
var person = PersonInfo(snapshot:item);
yourList.append(person);
}
因此,您将拥有一个稍后可以访问的 PersonInfo
模型对象列表。
关于swift - 将 FIRDataSnapshot 转换为自定义类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38359410/