Ios 在Swift中,如何快速设置实例变量?

Ios 在Swift中,如何快速设置实例变量?,ios,swift,Ios,Swift,这是最快的方法吗?我觉得我打字太多了。对于你的班级来说,你做了很多if-let语句,但没有提供任何有用的东西。即: public class User { var id: Int var fb_id: String? var first_name: String? var last_name: String? var age: Int? var distance: Int? var login_at_pretty: String?

这是最快的方法吗?我觉得我打字太多了。

对于你的班级来说,你做了很多if-let语句,但没有提供任何有用的东西。即:

public class User {
    var id: Int
    var fb_id: String?
    var first_name: String?
    var last_name: String?
    var age: Int?
    var distance: Int?
    var login_at_pretty: String?
    var login_at: Int?
    var profile: Profile?
    init(id: Int, fb_id: String?, first_name: String?, last_name: String?, age: Int?, distance: Int?, login_at_pretty: String?, login_at: Int?, profile: Profile?){

        self.id = id
        if let fb_id = fb_id {
            self.fb_id = fb_id
        }
        if let first_name = first_name {
            self.first_name = first_name
        }
        if let last_name = last_name {
            self.last_name = last_name
        }
        if let age = age {
            self.age = age
        }
        if let distance = distance {
            self.distance = distance
        }
        if let login_at_pretty = login_at_pretty {
            self.login_at_pretty = login_at_pretty
        }
        if let login_at = login_at {
            self.login_at = login_at
        }
        if let profile = profile {
            self.profile = profile
        }
    }
}
fb_id和self.fb_id是可选的,因此不需要绑定。只要做:

   if let fb_id = fb_id {
        self.fb_id = fb_id
   }
但是,请注意,如果您不打算子类化,那么使用结构将自动提供成员初始值设定项:

self.fb_id = fb_id

请在类的

中查看结构类型的成员初始值设定项,您正在执行许多if-let语句,这些语句没有提供任何有用的内容。即:

public class User {
    var id: Int
    var fb_id: String?
    var first_name: String?
    var last_name: String?
    var age: Int?
    var distance: Int?
    var login_at_pretty: String?
    var login_at: Int?
    var profile: Profile?
    init(id: Int, fb_id: String?, first_name: String?, last_name: String?, age: Int?, distance: Int?, login_at_pretty: String?, login_at: Int?, profile: Profile?){

        self.id = id
        if let fb_id = fb_id {
            self.fb_id = fb_id
        }
        if let first_name = first_name {
            self.first_name = first_name
        }
        if let last_name = last_name {
            self.last_name = last_name
        }
        if let age = age {
            self.age = age
        }
        if let distance = distance {
            self.distance = distance
        }
        if let login_at_pretty = login_at_pretty {
            self.login_at_pretty = login_at_pretty
        }
        if let login_at = login_at {
            self.login_at = login_at
        }
        if let profile = profile {
            self.profile = profile
        }
    }
}
fb_id和self.fb_id是可选的,因此不需要绑定。只要做:

   if let fb_id = fb_id {
        self.fb_id = fb_id
   }
但是,请注意,如果您不打算子类化,那么使用结构将自动提供成员初始值设定项:

self.fb_id = fb_id

查看

中结构类型的成员式初始值设定项如果您的实例变量是可选的,则不需要If-lets如果您的实例变量是可选的,则不需要If-lets…自动提供所有初始化-更准确的方法是说struct提供成员式初始值设定项。在实例化数据时,您仍然需要提供数据…自动提供所有初始化-更准确的方法是说struct提供了memberwise初始值设定项。在实例化数据时,仍然需要提供数据。