2017-10-22 15 views
2

firebaseデータベースからユーザーを迅速に取得しようとしましたが、エラーが発生しましたthis class is not key value coding-compliant for the key。私はそれが私の最初のアプリではないので、何かが間違っていたとは思わない。他のアプリでも前と同じ方法でユーザーを取得できました。しかし、今は動作しません。必要なすべての詳細は以下の通りです。助け、ありがとうください ここでコードすぐにfirebaseデータベースからユーザーを取得しようとしています

ここ
func fetchUsers() { 
    Database.database().reference().child("Users").observe(.childAdded, with: { (snapshot) in 
     if let dictionary = snapshot.value as? [String: AnyObject] { 
      print(snapshot) 
      let user = Users() 
      user.setValuesForKeys(dictionary) 
      //print(user.Email ?? "") 
      //print(user.Name ?? "") 

     } 
    }, withCancel: nil) 
} 

であるモデル:データベースの

import UIKit 

class Users: NSObject { 
    var Name : String? 
    var Email : String? 
} 

スクリーンショット enter image description here

コンソールでエラーが発生しました

ChatHub [2089:904743 ] * unによるアプリの終了理由: '[setValue:forUndefinedKey:]:このクラスはキー電子メールに対応するキー値ではありません。' *まずスローコールスタック: (0x182dd7d38 0x1822ec528 0x182dd7a00 0x1836e3780 0x18377fc0c 0x1048000d8 0x104800174 0x1048ac760 0x1048d7e40 0x105b0d49c 0x105b0d45c 0x105b12050 0x182d7ff20 0x182d7dafc 0x182c9e2d8 0x184b2ff84 0x18c24b880 0x104806a64 0x1827c256c) のlibC++ abi.dylib:タイプNSException (lldb)のキャッチされない例外で終了

答えて

0

私の意見では、インスタンス/オブジェクト/変数の先頭に大文字を使用しないでください。https://softwareengineering.stackexchange.com/questions/202031/what-is-the-reason-for-using-lowercase-for-the-first-word-in-a-local-variable-eを参照してください。

問題に戻って、Usersの名前を変更してみましたか?可能であればStructを使用し、簡単な初期化のためにクラスを使用してNSObjectをサブクラス化する必要はありません。 Emailの変数名がエラーの原因であると思われます。

struct Users { 
    var name: String? 
    var email: String? 
} 
Users

新しいインスタンス:

let user = Users(name: "name here", email: "email here") 

私はこれが役に立てば幸い!あなたのfetchUsers()機能で

+0

小文字の最初の単語はまだ同じエラーを取得。はい、電子メールはエラーの原因です。 : – user6052525

+0

あなたのプロジェクトをクリーンアップしようとしましたか? 'CMD + Shift + K'と' CMD + Shift + AltOption + K'それがうまくいかなかったら、 'emailAddress'に名前を変更してみてください – Glenn

+0

10時間と電子メールアドレスにまだ運が変わった – user6052525

0

、これを試してみてください。

if let dictionary = snapshot.children.allObjects as? [String: AnyObject] { 
    // your code 
} 
関連する問題