我创建了一个类名Users,如下所示
public class Users: NSObject {
var name: String?
var email: String?
}
和其他类创建用户类数组
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)
}
发生以下错误:
“Users 0x60400028fdc0> setValue:forUndefinedKey:]:此类与密钥名称不符合密钥值编码。”
答案 0 :(得分:8)
键值编码取决于Objective-C,在Swift 4和新的Objective-C推理规则下,您的name
和email
属性将不可用。
您可以将各个属性标记为@objc
:
@objc var name: String?
或者您可以说课程中的所有内容都可用:
@objcMembers
public class Users: NSObject {