首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用firebase和NSobject的NSobject

使用firebase和NSobject的NSobject
EN

Stack Overflow用户
提问于 2018-12-30 13:10:33
回答 1查看 103关注 0票数 0

2018-12-30 15:01:23.228731+0200 class 51679:726127*终止应用程序,原因:‘setValue:forUndefinedKey::这个类不符合键username.’的键值编码。‘(十一分贝)

使用firebase字典为NSobject类的键设置值

代码语言:javascript
复制
import UIKit

class User: NSObject {
var email: String?
var username: String?
}

函数

代码语言:javascript
复制
func fetchUsers() {
    Database.database().reference().child("users").observe(.childAdded) { (snap) in
        if let dictionary = snap.value as? [String : AnyObject]{
        let user = User()
            user.setValuesForKeys(dictionary)
            print(user.username)
        }
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-30 13:24:42

在Swift 4中已更改了Objective推断。必须向每个属性添加@objc属性。

代码语言:javascript
复制
class User: NSObject {
   @objc var email: String?
   @objc var username: String?
}

然而,setValuesForKeys是非常客观的-c-ish.没有沉重的ObjC运行时,Swift中有更好(更轻量级)的方法。

为什么这两个属性都是可选的呢?是否允许用户不使用姓名和电子邮件?

考虑一下,对于非选项,编译器将在编译时抛出一个错误,如果要传递nil,则为

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53977874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档