【问题标题】:Object Mapping in swift快速的对象映射
【发布时间】:2016-11-25 03:41:13
【问题描述】:

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

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

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

在我为映射制作用户结构时遇到问题之前:错误出现在 init 的末尾“从初始化程序返回而不初始化所有排序的属性”。

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"]
    }
}

我知道我必须学习很多,但现在没有时间,所以必须完成这个。我正在尝试尽可能多地学习。

非常感谢

【问题讨论】:

    标签: ios swift mapping


    【解决方案1】:

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

    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 = ""
    }
    

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

    【讨论】:

      猜你喜欢
      • 2018-04-02
      • 2021-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-19
      • 2019-05-15
      • 2011-12-08
      • 1970-01-01
      相关资源
      最近更新 更多