将我的MVC模型部分从数组转换为字典

时间:2016-04-15 05:36:40

标签: xcode swift dictionary

让我们假设我的模型具有以下内容:

import Foundation

class Model {


    var userName = [String]()
    var userAnswer = [String]()
    var userInfo = [String]()
    var name:String
    var answer:String

    init(){
        self.name = ""
        self.answer = ""

    }

    func addUserInfo(name:String, answer:String) -> Void {
        userName.append(name)
        userAnswer.append(answer)
    }

}

如何将此模型转换为userName,userAnswer成为一个加入字典?函数addUserInfo仍然可以工作。谢谢!

3 个答案:

答案 0 :(得分:1)

你可以使用funcion返回一个数组或只有get methord的新属性,就像这样

var userNamesAndUserAnswers:[[String:String]]
{
    get
    {
        var values:[[String:String]]=[]
        for index in 0..<userName.count
        {
            values.append(["name":userName[index],"answer":userAnswer[index]])
        }
        return values
    }
}

答案 1 :(得分:1)

您可以使用一个字典来表示映射到用户答案的​​用户名,如下所示:

class Model {
  var userInfo = [String:String]()

  func addUserInfo(name:String, answer:String) {
    userInfo[name] = answer
  }
}

由于您没有使用任何Foundation对象,因此无需导入Foundation。

答案 2 :(得分:0)

如果您想要[String: String]

var dict: [String: String] {
    var result: [String: String] = [:]

    zip(userName, userAnswer).forEach { result[$0.0] = $0.1 }

    return result
}

或者如果你想要[[String: String]]

var dict2: [[String: String]] { return zip(userName, userAnswer).map { [$0.0: $0.1] } }