私はFirebaseで辞書の値を取得し、setValuesForKeysWithDictionaryメソッドを使用してアプリケーションの 'User'クラスにキャストしようとしていますが、失敗し続けます。誰かがそれを説明するのを助けることができたら、それは大いに評価されるだろおかげ辞書に動的firebaseキーをキャストする
class User : NSObject{
var currentJob : String?
var currentOrg : String?
var hasJobs : Bool?
var hasOrganisations : Bool?
var isCurrentOrgAdmin : Bool?
var organisations : [String : AnyObject]?
}
var user = User()
func bindDataForCurrentUser() -> User {
firebase.child("Users").child(currentUserID).observeEventType(FIRDataEventType.Value) { (snap:FIRDataSnapshot) in
if let dictionary = snap.value as? [String : AnyObject] {
print("dictionary \(dictionary)")
self.user.setValuesForKeysWithDictionary(dictionary)
print("user: \(self.user)")
}
}
return self.user
}
は、それが第二の印刷ラインにそれを作るが、ここでは、最初の行での印刷の辞書ではないです:任意の助けを事前に
["hasOrganisations": 1, "isCurrentOrgAdmin": 1, "currentOrg": -KQFGX4oNcYPjXhlPZ9t, "hasJobs": 0, "organisations": { "-KQFGX4oNcYPjXhlPZ9t" = 1;"-KQFGZl-M4gSPTEjEXNH" = 1;}, "currentJob": -KQKQRfRYF4m3UAMaycd]
感謝を! 編集:申し訳ありませんが、コンソールにエラーを追加するのを忘れ:
dictionary ["hasOrganisations": 1, "isCurrentOrgAdmin": 1, "currentOrg": -KQFGX4oNcYPjXhlPZ9t, "hasJobs": 0, "organisations": { "-KQFGX4oNcYPjXhlPZ9t" = 1; "-KQFGZl-M4gSPTEjEXNH" = 1;}, "currentJob": -KQKQRfRYF4m3UAMaycd]
2016-08-29 13:00:08.909 iComply[49608:5287826] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[ setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key hasOrganisations.'
親切にsetValuesForKeysWithDictionaryメソッドを更新してください –