我正在尝试将FIRDataSnapshot转换为自定义类型(即我知道每个孩子 将有一个姓名,号码和电子邮件)
当我运行下面的代码时,一个JSON树将每个包含Name,Number和Email的子项打印到控制台。
所以我想将快照存储为具有每个属性的自定义类型“PersonInfo”。这样我可以在我的应用程序中更改此数据。我需要使用“PersonInfo”变量将这些数据存储到我的应用程序的各个部分。
ref.observeSingleEventOfType(.Value, withBlock: { (snapshot: FIRDataSnapshot) in
print(snapshot)
})
答案 0 :(得分:10)
您可以定义一个将充当模型的自定义类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
内,您可以迭代其子项并将每个人提取为:
for item in snapshot.children{
var person = PersonInfo(snapshot:item);
yourList.append(person);
}
因此,您将获得一个PersonInfo
模型对象的列表,您可以稍后访问它们。
答案 1 :(得分:0)
在目标c中你可以这样做:
标题文件:
namespace mynamespace
{
public class myclass
{
public myclass()
{
}
public myclass(string nomPrecio, string nomPrecioEN, int IDrangoPrecio, int IDPoblacionMv, int NumOfertas, int NumOVotaciones, string Imagen)
{
this.nomPrecio = nomPrecio;
this.nomPrecioEN = nomPrecioEN;
this.IDrangoPrecio = IDrangoPrecio;
this.IDPoblacionMv = IDPoblacionMv;
this.NumOfertas = NumOfertas;
this.NumOVotaciones = NumOVotaciones;
this.Imagen = Imagen;
}
public string nomPrecio { get; set; }
public string nomPrecioEN { get; set; }
public int IDrangoPrecio { get; set; }
public int IDPoblacionMv { get; set; }
public int NumOfertas { get; set; }
public int NumOVotaciones { get; set; }
public string Imagen { get; set; }
}
}
源文件:
#import <Foundation/Foundation.h>
#import <FirebaseDatabase/FirebaseDatabase.h>
@interface RTAObject : NSObject
@property (nonatomic) NSString pName;
@property (nonatomic) NSString * pNumber;
@property (nonatomic) NSString * pEmail;
-(id) init:(NSString) pName : (NSString*) name :(NSString*) pNumber :(NSString*) pEmail ;
@end