动态将嵌套参数添加到Alamofire参数

时间:2018-12-19 12:47:37

标签: ios swift alamofire

假设是否有一组测试,并想将每个测试动态添加到我的请求中,以使外观如下所示:

 data[Security][check]
 data[Test][%d][Participant][device_id]
 data[Test][%d][Participant][id]
 data[Test][%d][Participant][email]
 data[Test][%d][Participant][firstname]
 data[Test][%d][Participant][lastname]
 data[Test][%d][test_id]
 data[Test][%d][question_id]
 data[Test][%d][answer]

其中%d是测试数组中测试的索引。 我将如何在for循环中动态构造此参数集? 我猜我不能使用parameters.updateValue(),因为我需要一个嵌套键。但是参数[Test][<index>][Participant][<device_id>]给了我一个编译器错误。

1 个答案:

答案 0 :(得分:0)

您必须为参数对象中的每一层分别创建一个Dictionary<String, Any>,即

var data = Dictionary<String, Any>()
var test = Dictionary<String, Any>()
var index = Dictionary<String, Any>()
var content = Dictionary<String, Any>()
var participant = Dictionary<String, Any>()
//and then fill your dicitionaries from inside to outside
participant.updateValue(1, forKey:"deviceId")
participant.updateValue(12, forKey:"id")
//...
content.updateValue(participant, forKey:"Participant")
content.updateValue(1, forKey:"testId")
//...
index.updateValue(content, forKey: "0")
test.updateValue(index, forKey: "Test")
data.updateValue(test, forKey:"data")