Ios Swift 2恢复等级值
我从api中提取数据,并在类中初始化这些数据Ios Swift 2恢复等级值,ios,swift,class,swift2,Ios,Swift,Class,Swift2,我从api中提取数据,并在类中初始化这些数据 class User { init(login: NSString, email: NSString, last_name: NSString, first_name: NSString) { self.login = login self.email = email self.last_name = last_name self.first_name = first_name } var login: NSStrin
class User {
init(login: NSString, email: NSString, last_name: NSString, first_name: NSString) {
self.login = login
self.email = email
self.last_name = last_name
self.first_name = first_name
}
var login: NSString = ""
var email: NSString = ""
var last_name: NSString = ""
var first_name: NSString = "" }
func extract_data_user(Data: NSDictionary) {
let login: NSString = Data.valueForKey("login") as! NSString
let internal_email: NSString = Data.valueForKey("internal_email") as! NSString
let lastname: NSString = Data.valueForKey("lastname") as! NSString
let firstname: NSString = Data.valueForKey("firstname") as! NSString
_ = User(login: login, email: internal_email, last_name: lastname,
first_name: first name) }
我想创建一个函数来显示这些数据,但是当我创建变量例如'var user=user()'时,Xcode会要求我插入所有参数
例如,我希望在不初始化的情况下恢复“login”字符串。
Xcode
要求您插入所有参数,因为您只有一个User
类的初始值设定项,该初始值设定项接受所有参数。如果你想做这样的事情:
let user = User()
您必须向用户
类添加另一个初始值设定项:
class User {
init() {
// code...
}
// remaining code of User class...
}
编辑
而且你的代码看起来很糟糕。对我来说,应该是这样的:
class User {
var login: String?
var email: String?
var lastName: String?
var firstName: String?
init(login: String, email: String, lastName: String, firstName: String) {
self.login = login
self.email = email
self.lastName = lastName
self.firstName = firstName
}
convenience init(data: NSDictionary) {
let login = data.valueForKey("login") as! String
let email = data.valueForKey("internal_email") as! String
let lastName = data.valueForKey("lastname") as! String
let firstName = data.valueForKey("firstname") as! String
self.init(login: login, email: email, lastName: lastName, firstName: firstName)
}
convenience init() {
self.init(login: "", email: "", lastName: "", firstName: "")
}
}
如果不先初始化类的属性,则无法获取该属性的值 您应该创建一个
init(data:NSDictionary){
let login: NSString = data.valueForKey("login") as! NSString
let internal_email: NSString = data.valueForKey("internal_email") as! NSString
let lastname: NSString = data.valueForKey("lastname") as! NSString
let firstname: NSString = data.valueForKey("firstname") as! NSString
_ = User(login: login, email: internal_email, last_name: lastname,
first_name: first name)}
然后说:
let user = User(data)
现在你可以说
print(user.login)
谢谢你的回答,但我不明白我该做什么。初始化另一个是什么意思?你需要向你的
用户
类中添加另一个初始值设定项,如我的回答中所示。我刚刚编辑了我的帖子,所以你可以看看我是如何看待你的用户
类的