2017-10-02 10 views
1

は私がこのクラスは、キー名のコード値に対応していません。

public class Users: NSObject { 
    var name: String? 
    var email: String? 
} 

以下のように1人のクラス名のユーザーを作成していると

var regUser = [Users]() 

func fetchUser(){ 
    Database.database().reference().child("users").observe(.childAdded, with: {(DataSnapshot) in 
     if let dictionary = DataSnapshot.value as? [String: AnyObject]{ 
      let user = Users() 

      user.setValuesForKeys(dictionary) 
      self.users.append(user) 

      DispatchQueue.main.async { 
       self.tableView.reloadData() 
      } 
      print(user.email) 
     } 
    }, withCancel: nil) 
} 

次のエラーが発生し、他のクラスは、ユーザークラスの配列を作成します。

"ユーザー0x60400028fdc0> setValue:forUndefinedKey:]:このクラスは、キー名に対応するキー値ではありません。

答えて

3

キー値コーディングは、Objective-Cのに依存し、スウィフト4と新しいObjective-Cの推論規則の下で、あなたのnameemailプロパティは使用できません。

@objc var name: String? 

をしたり、クラスのすべてが利用可能であると言うことができます:

あなたは@objcとして個々のプロパティをマークすることができますヘルプ私適切にその作業のための

@objcMembers 
public class Users: NSObject { 
+0

感謝を。 –

+0

完璧な答え... – Ewerson

関連する問題