让我们假设我的模型具有以下内容:
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仍然可以工作。谢谢!
答案 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] } }