swift 中的对象映射

Object Mapping in swift

您好,我是 Swift 编程的初学者。

我正在尝试制作一个需要登录的应用程序,它将获取用户并传递数据,解析为 JSON 并将其发送到服务器。

我需要让用户只接受两个值:用户和从字段传递,将整个对象解析为 JSON 并发送 post 请求。

首先,我在为映射创建 User struc 时遇到问题:错误出现在 init 的末尾“Return 来自初始化程序,而没有初始化所有排序的属性”。

struct User: Mappable{
    private var _username: String!
    private var _password: String!
    private var _firstname: String
    private var _lastname: String

    var username: String{

        get{
            return _username
        }set(username){
            self._username = username

        }
    }

    var password: String{
        get{
            return _password
        }set(password){
            self._password = password
        }
    }

    var firstname: String{
        get{
            return _firstname
        }set(firstname){
            self._firstname = firstname
        }
    }

    var lastname: String{
        get{
            return _lastname
        }set(lastname){
            self._lastname = lastname
        }
    }

    init(username: String, password: String){
        self._username = username
        self._password = password
    }

    init?(_ map: Map) {

    }

    mutating func mapping(map: Map) {
        username <- map["USERNAME"]
        password <- map["PASSWORD"]
        firstname <- map["FIRST_NAME"]
        lastname <- map["LAST_NAME"]
    }
}

我知道我要学很多东西,但是现在没有时间,所以必须完成这个。我正在努力学习尽可能多的东西。

非常感谢

所有非可选属性都必须在退出初始化方法之前初始化。将它们设置为空字符串(或其他)应该可以消除错误。

init(username: String, password: String){
    self._username = username
    self._password = password
    self._firstname = ""
    self._lastname = ""
}

init?(_ map: Map) {
    self._username = ""
    self._password = ""
    self._firstname = ""
    self._lastname = ""
}

或者,您可以将这些属性设为可选。