Ios Swift 2恢复等级值

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

我从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: 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)

谢谢你的回答,但我不明白我该做什么。初始化另一个是什么意思?你需要向你的
用户
类中添加另一个初始值设定项,如我的回答中所示。我刚刚编辑了我的帖子,所以你可以看看我是如何看待你的
用户
类的