【发布时间】:2016-11-26 10:02:55
【问题描述】:
我从 Firebase 获取一些用户信息并将其存储到单例中。之后,每次值更改时,我都希望标签也更改,但直到我终止应用程序并返回时才会更改。
如果单例中的值发生变化,我应该如何更新标签?
我有标签视图。在第一个选项卡中我分配值,在第二个选项卡中我尝试将值放入标签。
这是我的单身:
class CurrentUser: NSObject
{
var generalDetails: User = User()/// Consecutive declarations on a line must be separated by ';'
static let sharedInstance = CurrentUser()
fileprivate override init(){
super.init()
}
}
像这样我赋值:
self.databaseRef.child("users").child(user.uid).observeSingleEvent(of: .value) { (snapshot:FIRDataSnapshot) in
guard let firebaseValue = snapshot.value as? [String:AnyObject], let userName = firebaseValue["username"] as? String, let email = firebaseValue["email"] as? String, let reputation = firebaseValue["reputation"] as? Int, let profilePicURL = firebaseValue["profileImageUrl"] as? String
else
{
print("Error with FrB snapshot")//Here
return
}
//Set values
self.currentUser.generalDetails = User(userName: userName, email: email, reputation: reputation, profileImageURL: profilePicURL, uid: user.uid)
}
如果我想为标签添加价值,我只需这样做(这个声誉是唯一可以经常改变的东西):
self.reputationLabel.text = String(self.currentUser.generalDetails.reputation)
【问题讨论】:
标签: ios swift firebase firebase-realtime-database