【发布时间】:2016-04-29 18:00:32
【问题描述】:
嗨,我是 swift 的新手,我是一个字符串,用于在 LoginViewController 中的 struct 对象中将用户凭据存储在用户默认值中。下面是我的代码,
class User: NSObject {
//MARK: Properties
var name: String
var email: String
var loginData: LoginData
//MARK: Initialization
init(name: String, email:String, loginData: LoginData) {
self.name = name
self.email = email
self.loginData = loginData
}
}
这里的LoginData是一个结构体
struct LoginData {
var username: String
var password: String
}
在提交注册数据时,将值赋值为
let logindata = LoginData (username: username, password: password)
let v = User(name: nameval, email: emailval, loginData:logindata)
在 LoginViewContoller 中,我有一个切换按钮,用于将用户凭据保存到我创建的 NSUserdefaults
var logindataValue: LoginData
并按如下方式存储在用户默认值中
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject(logindataValue.username, forKey: "username")
defaults.setObject(logindataValue.password, forKey: "password")
defaults.synchronize()
但在 LoginViewController 类中显示错误为“LoginViewController has no initializers”
如何防止这个错误?在这种情况下,这是正确的做法吗?
【问题讨论】:
-
您提供了很多关于您的各种模型对象的不相关数据,但几乎没有包含任何实际给您错误的类,
LoginViewController。我猜它丢失了,因为它可能“太大”,这意味着您甚至没有尝试制作MCVE。但是,如果您想阅读有关 Swift 初始化程序的相关信息,我建议您 start here。
标签: swift class struct initialization nsuserdefaults